{"id":54224,"date":"2022-01-03T16:49:39","date_gmt":"2022-01-03T11:19:39","guid":{"rendered":"https:\/\/2thenew.xyz\/blog\/?p=54224"},"modified":"2022-01-13T11:49:00","modified_gmt":"2022-01-13T06:19:00","slug":"handling-exceptions-in-grails","status":"publish","type":"post","link":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/","title":{"rendered":"Handling Exceptions in Grails"},"content":{"rendered":"<p>Daahh !! Who doesn&#8217;t know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response.<\/p>\n<p>Hmm, haven&#8217;t you heard of the common try-catch in the filter? Well, we can do that!<\/p>\n<p><em>But let&#8217;s say we have a list of exceptions to handle. We will have to take care of the hierarchy and keep adding multiple catch blocks as per that since our response code will be different for the different exceptions.<\/em><\/p>\n<p>From Grails 2.3.0 we can use declarative Controller Exception Handling.<br \/>\nAll you have to do is to create a <strong>handleYourExceptoion()<\/strong> method in your controller. Yes, you read it right, no annotation just the method with &#8216;handle &#8216; as the prefix, like below (code is in Groovy).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-54312 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2022\/01\/Blog1-01-scaled.jpg\" alt=\"Handle\" width=\"2560\" height=\"453\" srcset=\"https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-01-scaled.jpg 2560w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-01-300x53.jpg 300w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-01-1024x181.jpg 1024w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-01-768x136.jpg 768w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-01-1536x272.jpg 1536w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-01-2048x363.jpg 2048w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-01-624x111.jpg 624w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<p>And let&#8217;s say you have your own exception to handle just create a method like below (code is in Groovy).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-54313 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2022\/01\/Blog1-02-scaled.jpg\" alt=\"Handle\" width=\"2560\" height=\"453\" srcset=\"https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-02-scaled.jpg 2560w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-02-300x53.jpg 300w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-02-1024x181.jpg 1024w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-02-768x136.jpg 768w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-02-1536x272.jpg 1536w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-02-2048x363.jpg 2048w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-02-624x111.jpg 624w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<p>Now, will you be writing these handlers in every Controller? Of course not. Create an AbstractController, and extend this class in your Controller where you want to handle exceptions. Like below (code is in Groovy).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-54315 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2022\/01\/Blog1-03-1-scaled.jpg\" alt=\"Blog image\" width=\"2560\" height=\"1644\" srcset=\"https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-03-1-scaled.jpg 2560w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-03-1-300x193.jpg 300w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-03-1-1024x658.jpg 1024w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-03-1-768x493.jpg 768w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-03-1-1536x986.jpg 1536w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-03-1-2048x1315.jpg 2048w, https:\/\/2thenew.xyz\/blog\/wp-content\/uploads\/2022\/01\/Blog1-03-1-624x401.jpg 624w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<div class=\"ap-custom-wrapper\"><\/div><!--ap-custom-wrapper-->","protected":false},"excerpt":{"rendered":"<p>Daahh !! Who doesn&#8217;t know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response. Hmm, haven&#8217;t you heard of the common try-catch in the filter? Well, we can [&hellip;]<\/p>\n","protected":false},"author":1393,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":112,"footnotes":""},"categories":[7,446,1994,1],"tags":[4916,4840,9,4844],"class_list":["post-54224","post","type-post","status-publish","format-standard","hentry","category-grails","category-java","category-software-development","category-technology","tag-exception","tag-grails","tag-groovy","tag-java"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Daahh !! Who doesn&#039;t know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response. Hmm, haven&#039;t you heard of the common try-catch in the filter? Well, we can\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Sumit Navin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"TO THE NEW BLOG\" \/>\n\t\t<meta property=\"og:type\" content=\"blog\" \/>\n\t\t<meta property=\"og:title\" content=\"Handling Exceptions in Grails | TO THE NEW Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Daahh !! Who doesn&#039;t know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response. Hmm, haven&#039;t you heard of the common try-catch in the filter? Well, we can\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@tothenew\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Handling Exceptions in Grails | TO THE NEW Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Daahh !! Who doesn&#039;t know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response. Hmm, haven&#039;t you heard of the common try-catch in the filter? Well, we can\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#article\",\"name\":\"Handling Exceptions in Grails | TO THE NEW Blog\",\"headline\":\"Handling Exceptions in Grails\",\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sumit-navin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"\\\/blog\\\/wp-ttn-blog\\\/uploads\\\/2022\\\/01\\\/Blog1-01-scaled.jpg\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#articleImage\"},\"datePublished\":\"2022-01-03T16:49:39+05:30\",\"dateModified\":\"2022-01-13T11:49:00+05:30\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#webpage\"},\"articleSection\":\"Grails, Java\\\/JVM, Software development, Technology, exception, Grails, Groovy, Java\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#listItem\",\"name\":\"Handling Exceptions in Grails\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#listItem\",\"position\":3,\"name\":\"Handling Exceptions in Grails\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\",\"name\":\"TO THE NEW Blog\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sumit-navin\\\/#author\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sumit-navin\\\/\",\"name\":\"Sumit Navin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#authorImage\",\"url\":\"https:\\\/\\\/newersworld-sf-static.tothenew.net\\\/prod\\\/profilePicFolder\\\/67c871bf-792d-46ad-be21-355a798d70fe_Sumit-Navin-Profile-Pitcure.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Sumit Navin\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#webpage\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/\",\"name\":\"Handling Exceptions in Grails | TO THE NEW Blog\",\"description\":\"Daahh !! Who doesn't know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response. Hmm, haven't you heard of the common try-catch in the filter? Well, we can\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/handling-exceptions-in-grails\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sumit-navin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/author\\\/sumit-navin\\\/#author\"},\"datePublished\":\"2022-01-03T16:49:39+05:30\",\"dateModified\":\"2022-01-13T11:49:00+05:30\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/\",\"name\":\"TO THE NEW Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.tothenew.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Handling Exceptions in Grails | TO THE NEW Blog","description":"Daahh !! Who doesn't know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response. Hmm, haven't you heard of the common try-catch in the filter? Well, we can","canonical_url":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#article","name":"Handling Exceptions in Grails | TO THE NEW Blog","headline":"Handling Exceptions in Grails","author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/sumit-navin\/#author"},"publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"},"image":{"@type":"ImageObject","url":"\/blog\/wp-ttn-blog\/uploads\/2022\/01\/Blog1-01-scaled.jpg","@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#articleImage"},"datePublished":"2022-01-03T16:49:39+05:30","dateModified":"2022-01-13T11:49:00+05:30","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#webpage"},"isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#webpage"},"articleSection":"Grails, Java\/JVM, Software development, Technology, exception, Grails, Groovy, Java"},{"@type":"BreadcrumbList","@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","position":1,"name":"Home","item":"https:\/\/2thenew.xyz\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/2thenew.xyz\/blog\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#listItem","name":"Handling Exceptions in Grails"},"previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#listItem","position":3,"name":"Handling Exceptions in Grails","previousItem":{"@type":"ListItem","@id":"https:\/\/2thenew.xyz\/blog\/category\/technology\/#listItem","name":"Technology"}}]},{"@type":"Organization","@id":"https:\/\/2thenew.xyz\/blog\/#organization","name":"TO THE NEW Blog","url":"https:\/\/2thenew.xyz\/blog\/"},{"@type":"Person","@id":"https:\/\/2thenew.xyz\/blog\/author\/sumit-navin\/#author","url":"https:\/\/2thenew.xyz\/blog\/author\/sumit-navin\/","name":"Sumit Navin","image":{"@type":"ImageObject","@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#authorImage","url":"https:\/\/newersworld-sf-static.tothenew.net\/prod\/profilePicFolder\/67c871bf-792d-46ad-be21-355a798d70fe_Sumit-Navin-Profile-Pitcure.jpeg","width":96,"height":96,"caption":"Sumit Navin"}},{"@type":"WebPage","@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#webpage","url":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/","name":"Handling Exceptions in Grails | TO THE NEW Blog","description":"Daahh !! Who doesn't know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response. Hmm, haven't you heard of the common try-catch in the filter? Well, we can","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/2thenew.xyz\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/#breadcrumblist"},"author":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/sumit-navin\/#author"},"creator":{"@id":"https:\/\/2thenew.xyz\/blog\/author\/sumit-navin\/#author"},"datePublished":"2022-01-03T16:49:39+05:30","dateModified":"2022-01-13T11:49:00+05:30"},{"@type":"WebSite","@id":"https:\/\/2thenew.xyz\/blog\/#website","url":"https:\/\/2thenew.xyz\/blog\/","name":"TO THE NEW Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/2thenew.xyz\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"TO THE NEW BLOG","og:type":"blog","og:title":"Handling Exceptions in Grails | TO THE NEW Blog","og:description":"Daahh !! Who doesn't know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response. Hmm, haven't you heard of the common try-catch in the filter? Well, we can","og:url":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/","og:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","og:image:secure_url":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png","twitter:card":"summary","twitter:site":"@tothenew","twitter:title":"Handling Exceptions in Grails | TO THE NEW Blog","twitter:description":"Daahh !! Who doesn't know how to handle exceptions. A simple try-catch block would do the job. But think of so many methods where we will have to keep the same code of catching exceptions and then creating the desired response. Hmm, haven't you heard of the common try-catch in the filter? Well, we can","twitter:image":"https:\/\/2thenew.xyz\/blog\/wp-content\/themes\/ttn\/images\/social-logo.png"},"aioseo_meta_data":{"post_id":"54224","title":null,"description":null,"keywords":[],"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":{"id":"#aioseo-article-65e051379578f","slug":"article","graphName":"Article","label":"Article","properties":{"type":"BlogPosting","name":"#post_title","headline":"#post_title","description":"#post_excerpt","image":"","keywords":"","author":{"name":"#author_name","url":"#author_url"},"dates":{"include":true,"datePublished":"","dateModified":""}}},"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":"{\"article\":{\"articleType\":\"BlogPosting\"},\"course\":{\"name\":\"\",\"description\":\"\",\"provider\":\"\"},\"faq\":{\"pages\":[]},\"product\":{\"reviews\":[]},\"recipe\":{\"ingredients\":[],\"instructions\":[],\"keywords\":[]},\"software\":{\"reviews\":[],\"operatingSystems\":[]},\"webPage\":{\"webPageType\":\"WebPage\"}}","pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"created":"2021-12-16 14:44:26","updated":"2024-02-29 09:41:11","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.xyz\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/2thenew.xyz\/blog\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHandling Exceptions in Grails\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/2thenew.xyz\/blog"},{"label":"Technology","link":"https:\/\/2thenew.xyz\/blog\/category\/technology\/"},{"label":"Handling Exceptions in Grails","link":"https:\/\/2thenew.xyz\/blog\/handling-exceptions-in-grails\/"}],"_links":{"self":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/54224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/users\/1393"}],"replies":[{"embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/comments?post=54224"}],"version-history":[{"count":3,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/54224\/revisions"}],"predecessor-version":[{"id":54316,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/posts\/54224\/revisions\/54316"}],"wp:attachment":[{"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/media?parent=54224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/categories?post=54224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2thenew.xyz\/blog\/wp-json\/wp\/v2\/tags?post=54224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}