{"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":{"footnotes":""},"categories":[8],"tags":[23,18],"class_list":["post-292","post","type-post","status-publish","format-standard","hentry","category-java","tag-java","tag-lambdas"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Try as Expression in Java 8 - Benji&#039;s Blog<\/title>\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=\"author\" content=\"benji\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"benji\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/2013\\\/11\\\/29\\\/try-as-expression-in-java-8\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/2013\\\/11\\\/29\\\/try-as-expression-in-java-8\\\/\"},\"author\":{\"name\":\"benji\",\"@id\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/45ecb36b51f4ce99e6929d2d31ca5c09\"},\"headline\":\"Try as Expression in Java 8\",\"datePublished\":\"2013-11-29T09:02:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/2013\\\/11\\\/29\\\/try-as-expression-in-java-8\\\/\"},\"wordCount\":84,\"commentCount\":0,\"keywords\":[\"Java\",\"lambdas\"],\"articleSection\":[\"Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/2013\\\/11\\\/29\\\/try-as-expression-in-java-8\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/2013\\\/11\\\/29\\\/try-as-expression-in-java-8\\\/\",\"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\",\"author\":{\"@id\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/45ecb36b51f4ce99e6929d2d31ca5c09\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/2013\\\/11\\\/29\\\/try-as-expression-in-java-8\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/2013\\\/11\\\/29\\\/try-as-expression-in-java-8\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/2013\\\/11\\\/29\\\/try-as-expression-in-java-8\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Try as Expression in Java 8\"}]},{\"@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\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/45ecb36b51f4ce99e6929d2d31ca5c09\",\"name\":\"benji\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/417ada828fa4be09324820d24c0d93c3bfcbae183629e09117c9f4c4ab7ed43a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/417ada828fa4be09324820d24c0d93c3bfcbae183629e09117c9f4c4ab7ed43a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/417ada828fa4be09324820d24c0d93c3bfcbae183629e09117c9f4c4ab7ed43a?s=96&d=mm&r=g\",\"caption\":\"benji\"},\"sameAs\":[\"http:\\\/\\\/benjiweber.co.uk\"],\"url\":\"https:\\\/\\\/benjiweber.co.uk\\\/blog\\\/author\\\/benji\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Try as Expression in Java 8 - Benji&#039;s Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/","og_locale":"en_US","og_type":"article","og_title":"Try as Expression in Java 8 - Benji&#039;s Blog","og_description":"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;","og_url":"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/","og_site_name":"Benji&#039;s Blog","article_published_time":"2013-11-29T09:02:54+00:00","author":"benji","twitter_card":"summary_large_image","twitter_misc":{"Written by":"benji","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/#article","isPartOf":{"@id":"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/"},"author":{"name":"benji","@id":"https:\/\/benjiweber.co.uk\/blog\/#\/schema\/person\/45ecb36b51f4ce99e6929d2d31ca5c09"},"headline":"Try as Expression in Java 8","datePublished":"2013-11-29T09:02:54+00:00","mainEntityOfPage":{"@id":"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/"},"wordCount":84,"commentCount":0,"keywords":["Java","lambdas"],"articleSection":["Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/","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","author":{"@id":"https:\/\/benjiweber.co.uk\/blog\/#\/schema\/person\/45ecb36b51f4ce99e6929d2d31ca5c09"},"breadcrumb":{"@id":"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/benjiweber.co.uk\/blog\/2013\/11\/29\/try-as-expression-in-java-8\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/benjiweber.co.uk\/blog\/"},{"@type":"ListItem","position":2,"name":"Try as Expression in Java 8"}]},{"@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":{"@type":"EntryPoint","urlTemplate":"https:\/\/benjiweber.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/benjiweber.co.uk\/blog\/#\/schema\/person\/45ecb36b51f4ce99e6929d2d31ca5c09","name":"benji","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/417ada828fa4be09324820d24c0d93c3bfcbae183629e09117c9f4c4ab7ed43a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/417ada828fa4be09324820d24c0d93c3bfcbae183629e09117c9f4c4ab7ed43a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/417ada828fa4be09324820d24c0d93c3bfcbae183629e09117c9f4c4ab7ed43a?s=96&d=mm&r=g","caption":"benji"},"sameAs":["http:\/\/benjiweber.co.uk"],"url":"https:\/\/benjiweber.co.uk\/blog\/author\/benji\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/benjiweber.co.uk\/blog\/wp-json\/wp\/v2\/posts\/292","targetHints":{"allow":["GET"]}}],"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}]}}