{"id":292,"date":"2013-11-29T10:02:54","date_gmt":"2013-11-29T09:02:54","guid":{"rendered":"http:\/\/benjiweber.co.uk\/blog\/?p=292"},"modified":"2013-11-29T10:02:54","modified_gmt":"2013-11-29T09:02:54","slug":"try-as-expression-in-java-8","status":"publish","type":"post","link":"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/","title":{"rendered":"Try as Expression in Java 8"},"content":{"rendered":"<p class=\"lead\">I&#8217;ve been familiarising myself with the new Java 8 language features. It&#8217;s great how much easier it is to work around language limitations now that we have lambdas.<\/p>\n<p>One annoyance with Java is that try blocks cannot be used as expressions. <\/p>\n<p>We can do it with &#8220;if&#8221; conditionals using the ternary operator.<\/p>\n<pre lang=\"java\">\r\n    String result = condition ? \"this\" : \"that\";\r\n<\/pre>\n<p>But you cannot do the equivalent with a try block.<\/p>\n<p>However, it&#8217;s fairly easy now that we have lambdas.<\/p>\n<pre lang=\"java\">\r\n    @Test public void should_return_try_value() {\r\n        String result = Try(() -> {\r\n            return \"try\";\r\n        }).Catch(NullPointerException.class, e -> {\r\n            return \"catch\";\r\n        }).apply();\r\n\r\n        assertEquals(\"try\", result);\r\n    }\r\n<\/pre>\n<p><a href=\"https:\/\/github.com\/benjiman\/expressions\/blob\/master\/src\/test\/java\/uk\/co\/benjiweber\/expressions\/TryAsExpressionTest.java\">Code and more tests on github<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been familiarising myself with the new Java 8 language features. It&#8217;s great how much easier it is to work around language limitations now that we have lambdas. One annoyance with Java is that try blocks cannot be used as expressions. We can do it with &#8220;if&#8221; conditionals using the ternary operator. String result =&#8230;  <a href=\"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/\" class=\"more-link\" title=\"Read Try as Expression in Java 8\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8],"tags":[23,18],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v14.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Try as Expression in Java 8 - Benji&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"I&#8217;ve been familiarising myself with the new Java 8 language features. It&#8217;s great how much easier it is to work around language limitations now that we have lambdas. One annoyance with Java is that try blocks cannot be used as expressions. We can do it with &#8220;if&#8221; conditionals using the ternary operator. String result =... Read more &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/\" \/>\n<meta property=\"og:site_name\" content=\"Benji&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-11-29T09:02:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/benjiweber.co.uk\/blog\/#website\",\"url\":\"https:\/\/benjiweber.co.uk\/blog\/\",\"name\":\"Benji&#039;s Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/benjiweber.co.uk\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/#webpage\",\"url\":\"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/\",\"name\":\"Try as Expression in Java 8 - Benji&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\/\/benjiweber.co.uk\/blog\/#website\"},\"datePublished\":\"2013-11-29T09:02:54+00:00\",\"dateModified\":\"2013-11-29T09:02:54+00:00\",\"author\":{\"@id\":\"https:\/\/benjiweber.co.uk\/blog\/#\/schema\/person\/45ecb36b51f4ce99e6929d2d31ca5c09\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/benjiweber.co.uk\/blog\/#\/schema\/person\/45ecb36b51f4ce99e6929d2d31ca5c09\",\"name\":\"benji\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/benjiweber.co.uk\/blog\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/05fb47b31a0b329e1b790074a9b624ef?s=96&d=mm&r=g\",\"caption\":\"benji\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/posts\/292"}],"collection":[{"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=292"}],"version-history":[{"count":6,"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/posts\/292\/revisions"}],"predecessor-version":[{"id":298,"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/posts\/292\/revisions\/298"}],"wp:attachment":[{"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}