{"id":78,"date":"2016-01-13T05:09:10","date_gmt":"2016-01-13T05:09:10","guid":{"rendered":"http:\/\/kaizen-koka.com\/?p=78"},"modified":"2016-01-13T22:46:04","modified_gmt":"2016-01-13T22:46:04","slug":"exceptions-explained","status":"publish","type":"post","link":"https:\/\/kaizen-koka.com\/?p=78","title":{"rendered":"Exceptions Explained"},"content":{"rendered":"<p>\n\t<span style=\"font-size:16px;\"><strong>JVM<\/strong><\/span>\n<\/p>\n<ol>\n<li>\n\t\tMonitor all the statements.\n\t<\/li>\n<li>\n\t\tIf an error\/exception, then identifies corresponding Exception class.\n\t<\/li>\n<li>\n\t\tCreate the object for Exception class.\n\t<\/li>\n<li>\n\t\tThrows the object.\n\t<\/li>\n<li>\n\t\tCatch the object &amp; terminate the Program\n\t<\/li>\n<li>\n\t\tJVM displays info in that Object.\n\t<\/li>\n<\/ol>\n<p>\n\t<span style=\"font-size:16px;\"><strong>Exceptions Hierarchy<\/strong><\/span>&nbsp; &nbsp;\n<\/p>\n<p>\n\t&nbsp; &nbsp; &nbsp;Exceptions classes are in package java.lang.*\n<\/p>\n<p>\n\t<a href=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions.png\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"79\" data-permalink=\"https:\/\/kaizen-koka.com\/?attachment_id=79\" data-orig-file=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions.png?fit=689%2C519&amp;ssl=1\" data-orig-size=\"689,519\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Exceptions\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions.png?fit=300%2C226&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions.png?fit=689%2C519&amp;ssl=1\" alt=\"Exceptions\" class=\"aligncenter size-full wp-image-79\" height=\"519\" src=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions.png?resize=689%2C519\" width=\"689\" srcset=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions.png?w=689&amp;ssl=1 689w, https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions.png?resize=300%2C226&amp;ssl=1 300w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><\/a>\n<\/p>\n<p>\n\t<strong><span style=\"font-size:14px;\">There are two type of problems.<\/span><\/strong>\n<\/p>\n<ul style=\"list-style-type:circle;\">\n<li>\n\t\tExceptions which can be handled\n\t<\/li>\n<li>\n\t\tError which can&rsquo;t be handled\n\t<\/li>\n<li>\n\t\tAll exceptions in Java are classes.\n\t<\/li>\n<li>\n\t\tAll exception are subclass of java.lang.Exception\n\t<\/li>\n<li>\n\t\tIn all exception classes &ndash; there will be only constructors. We don&rsquo;t have any methods. All Exception subclasses are using superclass Throwable methods. Like getMessage(); printStackTrace();\n\t<\/li>\n<li>\n\t\tWe handle the Exception with the following 5 keywords.\n\t<\/li>\n<\/ul>\n<ul style=\"margin-left: 40px;\">\n<li>\n\t\ttry\n\t<\/li>\n<li>\n\t\tcatch\n\t<\/li>\n<li>\n\t\tfinally\n\t<\/li>\n<li>\n\t\tthrow\n\t<\/li>\n<li>\n\t\tthrows\n\t<\/li>\n<\/ul>\n<p>\n\t&nbsp; <strong><span style=\"font-size:14px;\">try:<\/span> <\/strong>block is used to place the statements need to be monitored in case of abnormal behavior.\n<\/p>\n<p>\n\t&nbsp;&nbsp;<strong><span style=\"font-size:14px;\">catch:<\/span> <\/strong>block is used to catch the exceptions raised by try block.\n<\/p>\n<ul>\n<li>\n\t\tCatch should follow by try.\n\t<\/li>\n<li>\n\t\tOther statements are not allowed between try and catch.\n\t<\/li>\n<li>\n\t\tFor one try &ndash; we can write more than one catch block.\n\t<\/li>\n<li>\n\t\tIn case of more than one catch block &ndash; order of exceptions must be subclass to superclass.\n\t<\/li>\n<\/ul>\n<p>\n\t<strong>&nbsp;&nbsp;<span style=\"font-size:14px;\">finally:<\/span><\/strong><span style=\"font-size:14px;\">&nbsp;<\/span> block is used for the statements which need to be executed irrespective of exceptions occur in try block.\n<\/p>\n<ul>\n<li>\n\t\tOnly one finally is allowed for each try block.\n\t<\/li>\n<li>\n\t\tWhen you have statements like System.exit(0) in try block then finally will not be executed.\n\t<\/li>\n<li>\n\t\tWhen the running thread interrupted while executing try or catch statements by kiiling the thread then finally won&rsquo;t be executed.\n\t<\/li>\n<li>\n\t\tWhen try block goes in to infinite loop then finally won&rsquo;t be executed.\n\t<\/li>\n<li>\n\t\tBelow are the allowed scenarios,\n\t<\/li>\n<\/ul>\n<p style=\"margin-left:38.3pt;\">\n\ttry{&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;try{&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; try{&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; try{&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;try{<br \/>\n\t} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br \/>\n\tcatch(){ &nbsp; &nbsp; &nbsp;catch(){ &nbsp; &nbsp;catch(){ &nbsp; &nbsp; &nbsp; &nbsp; catch(){ &nbsp; &nbsp; &nbsp; finally{ &nbsp; &nbsp;&nbsp;<br \/>\n\t} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;}&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br \/>\n\t&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; catch(){ &nbsp; &nbsp; finally{ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; catch(){ &nbsp; &nbsp; &nbsp;<br \/>\n\t&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br \/>\n\t&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; finally{<br \/>\n\t&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;&nbsp; &nbsp;\n<\/p>\n<p style=\"margin-left:1.0in;\">\n\t&nbsp;\n<\/p>\n<p>\n\t<strong><span style=\"font-size:14px;\">throws:&nbsp;<\/span> <\/strong>key word is used to specify the method level exceptions.&nbsp; Statements inside a method may throw some exceptions. If you want to handle them &ndash; you can do that by surrounding those statements with try catch block. If you don&rsquo;t want to handle the exceptions inside the method then throw them to calling method using throws at method level.\n<\/p>\n<p>\n\tpublic void mtd2() throws ArrayIndexOutOfBoundsException, ArithmeticException {\n<\/p>\n<p>\n\t\/\/valid java statements\n<\/p>\n<p>\n\t}\n<\/p>\n<p>\n\tIn the above method mtd2() &ndash; we are not specifying the exceptions but the we are communicating the caller method of mtd2() to handle those exception that I&rsquo;m throwing.\n<\/p>\n<p>\n\t<strong><span style=\"font-size:14px;\">throw:<\/span> <\/strong>is used to throw the exceptions in ur own.&nbsp; JVM handles built in exception. JVM can&rsquo;t handle application level exceptions or user defined exceptions.\n<\/p>\n<p>\n\t<span style=\"font-size:14px;\"><strong>User Defined Exceptions: <\/strong><\/span>\n<\/p>\n<ul>\n<li>\n\t\tWrite your own exception class by extending java.land.Exception or java.lang.RuntimeException\n\t<\/li>\n<li>\n\t\tWrite one or more constructors based on your requirement.\n\t<\/li>\n<li>\n\t\tOverride toString() method.\n\t<\/li>\n<li>\n\t\tIf required override equals and hascode method.\n\t<\/li>\n<\/ul>\n<p>\n\t<span style=\"font-size:14px;\"><strong>Exceptions Types<\/strong><\/span>\n<\/p>\n<p>\n\t<a href=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions-Types.jpg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"81\" data-permalink=\"https:\/\/kaizen-koka.com\/?attachment_id=81\" data-orig-file=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions-Types.jpg?fit=712%2C492&amp;ssl=1\" data-orig-size=\"712,492\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Exceptions Types\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions-Types.jpg?fit=300%2C207&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions-Types.jpg?fit=712%2C492&amp;ssl=1\" alt=\"Exceptions Types\" class=\"aligncenter size-full wp-image-81\" height=\"492\" src=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions-Types.jpg?resize=712%2C492\" width=\"712\" srcset=\"https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions-Types.jpg?w=712&amp;ssl=1 712w, https:\/\/i0.wp.com\/kaizen-koka.com\/wp-content\/uploads\/2016\/01\/Exceptions-Types.jpg?resize=300%2C207&amp;ssl=1 300w\" sizes=\"auto, (max-width: 712px) 100vw, 712px\" \/><\/a>\n<\/p>\n<p>\n\t<strong>Checked Exceptions examples:<\/strong>\n<\/p>\n<ul>\n<li>\n\t\tIOException\n\t<\/li>\n<li>\n\t\t<a href=\"http:\/\/javarevisited.blogspot.com\/2012\/01\/javasqlsqlexception-invalid-column.html\">SQLException<\/a>\n\t<\/li>\n<li>\n\t\tDataAccessException\n\t<\/li>\n<li>\n\t\t<a href=\"http:\/\/javarevisited.blogspot.com\/2011\/08\/classnotfoundexception-in-java-example.html\">ClassNotFoundException<\/a>\n\t<\/li>\n<\/ul>\n<p>\n\t<strong>UnChecked Exceptions Examples:<\/strong>\n<\/p>\n<ul>\n<li>\n\t\tNullPointerException\n\t<\/li>\n<li>\n\t\tArrayIndexOutOfBound\n\t<\/li>\n<li>\n\t\tIllegalArgumentException\n\t<\/li>\n<li>\n\t\tIllegalStateException\n\t<\/li>\n<\/ul>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<strong><span style=\"font-size:14px;\">Program lead to java.lang.StackOverflowError&nbsp;(not exception), program need to be fixed in order get rid of the error<\/span>.<\/strong>\n<\/p>\n<pre class=\"brush:java;\">\r\npublic static void main(String[] args) {\r\n\t\tmethod1();\r\n\t}\r\n\tstatic void method1(){\r\n\t\tmethod2();\r\n\t}\r\n\tstatic void method2(){\r\n\t\tmethod1();\r\n\t}<\/pre>\n<pre class=\"brush:java;\">\r\n&nbsp;<\/pre>\n<p>\n\t<strong><span style=\"font-size:14px;\">Program doesn&#39;t exit until user enter non-zero &nbsp;&#39;b&#39; value<\/span><\/strong>\n<\/p>\n<pre class=\"brush:java;\">\r\npackage com.bellinfo.batch3.corejava.day9;\r\n\r\nimport java.util.Scanner;\r\n\r\npublic class ExceptionScenario1 {\r\n\tpublic static void main(String[] args) {\r\n\t\tboolean isZero=true;\r\n\t\ttry{\t\r\n\t\t\t\tScanner scan = new Scanner(System.in);\r\n\t\t\t\tSystem.out.println(&quot;enter a value:&quot;);\r\n\t\t\t\tint a = scan.nextInt();\r\n\t\t\t\tSystem.out.println(&quot;enter b value:&quot;);\r\n\t\t\t\tint b = scan.nextInt();\r\n\t\t\t\tint c =a\/b;\r\n\t\t\t\tSystem.out.println(&quot;Result&quot;+c);\r\n\t\t\t\tisZero=false;\r\n\t\t\t}catch(Exception e){\r\n\t\t\t\tSystem.out.println(&quot;Enter non zero values&quot;);\r\n\t\t\t}\r\n\t System.out.println(&quot;Program ended normally&quot;);\r\n\t}\r\n}\r\n<\/pre>\n<p>\n\t<strong><span style=\"font-size:14px;\">try catch finally scenarios,<\/span><\/strong>\n<\/p>\n<pre class=\"brush:java;\">\r\npublic class TryCatchFinallyScenarios {\r\n\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\tmethod1();\r\n\t}\r\n\r\n\tstatic void method1() {\r\n\t\tint a = 10;\r\n\t\tint b = 0;\r\n\t\tmethod2(a, b);\r\n\t}\r\n\r\n\tstatic void method2(int a, int b) {\r\n\t\tmethod3(a, b);\r\n\t}\r\n\r\n\tstatic void method3(int a, int b) {\r\n\t\tint c = 0;\r\n\t\tint array[] = new int[1];\r\n\r\n\t\ttry {\r\n\t\t\tarray[3] = 121;\r\n\t\t\tc = a \/ b;\r\n\t\t} catch (ArithmeticException e) {\r\n\t\t\tSystem.out.println(&quot;inside arthimetic exception&quot;);\r\n\t\t\te.getStackTrace();\r\n\t\t} catch (IndexOutOfBoundsException iob) {\r\n\t\t\tSystem.out.println(&quot;index out of bound execption&quot;);\r\n\t\t} catch (Exception e) {\r\n\t\t\tSystem.out.println(&quot;exception class&quot;);\r\n\t\t} finally {\r\n\t\t\tSystem.out.println(&quot;finally always executes&quot;);\r\n\t\t}\r\n\t\tSystem.out.println(&quot;result&quot; + c);\r\n\t}\r\n}<\/pre>\n<p>\n\t<span style=\"font-size:14px;\"><strong>scenarios where finally block doesn&#39;t execute.<\/strong><\/span>\n<\/p>\n<pre class=\"brush:java;\">\r\n\t\ttry{\r\n\t\t\tSystem.exit(0);\r\n\t\t\tfor(;;);\t\r\n\t\t}catch(Exception e){\r\n\t\t\t\r\n\t\t}\r\n\t\tfinally{\r\n\t\t\tSystem.out.println(&quot;finally doesn&#39;t executes in the above two scenarios&quot;);\r\n\t\t}<\/pre>\n<p>\n\t<span style=\"font-size:14px;\"><strong>throws scenario<\/strong><\/span>\n<\/p>\n<pre class=\"brush:java;\">\r\npublic class MethodLevelExceptionsScenarios {\r\n\tpublic static void main(String[] args) {\r\n\t\t\r\n\t\tmethod1();\r\n\t}\r\n\tstatic void method1(){\r\n\t\tint a =10;\r\n\t\tint b =0;\r\n\t\ttry{\r\n\t\tmethod2(a, b);\r\n\t\t}catch(ArithmeticException e){\r\n\t\t\tSystem.out.println(&quot;inside arthimetic exception&quot;);\r\n\t\t\te.getStackTrace();\r\n\t\t}catch(IndexOutOfBoundsException iob){\r\n\t\t\tSystem.out.println(&quot;index out of bound execption&quot;);\r\n\t\t}catch(Exception e){\r\n\t\t\tSystem.out.println(&quot;exception class&quot;);\r\n\t\t}\r\n\t\tfinally{\r\n\t\t\tSystem.out.println(&quot;finally always executes&quot;);\r\n\t\t}\r\n\t}\r\n\tstatic void method2(int a, int b) throws ArithmeticException,IndexOutOfBoundsException{\r\n\t\tmethod3(a,b);\r\n\t}\r\n\tstatic void method3(int a, int b) throws ArithmeticException{\r\n\t\tint c=0;\r\n\t\tint array[] = new int[1];\r\n\t\tarray[3]=121;\t\r\n\t\tc = a\/b;\r\n\t\tSystem.out.println(&quot;result&quot;+c);\r\n\t}\r\n}<\/pre>\n<p>\n\t<span style=\"font-size:14px;\"><strong>User Defined exceptions:<\/strong><\/span>\n<\/p>\n<pre class=\"brush:java;\">\r\n&nbsp;<\/pre>\n<pre class=\"brush:java;\">\r\npublic class CardInvalidException extends RuntimeException {\r\n\tString number;\r\n\t\r\n\tCardInvalidException(){\r\n\t\t\r\n\t}\r\n\tCardInvalidException(String cardNumber){\r\n\t\tnumber = cardNumber;\r\n\t}\r\n\t\r\n\tpublic String toString(){\r\n\t\tif(number !=null){\r\n\t\t\treturn &quot;invalid card number entered&quot;+ number +&quot; card number must be of size 16&quot;;\r\n\t\t}\r\n\t\treturn &quot;invalid card number. Enter valid Card Number of size 16&quot;;\r\n\t}\r\n}\r\n<\/pre>\n<pre class=\"brush:java;\">\r\nimport java.util.Scanner;\r\n\r\npublic class UserDefinedExceptionScenario {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\ttry{\r\n\t\tSystem.out.println(&quot;Enter your card number&quot;);\r\n\t\tScanner scan = new Scanner(System.in);\r\n\t\tString number = scan.next();\r\n\t\tmethod1(number);\r\n\t\t}catch(CardInvalidException cie){\r\n\t\t\tSystem.out.println(cie);\r\n\t\t}\r\n\r\n\t}\r\n\t\r\n\tstatic void method1(String number) throws CardInvalidException{\r\n\t\tif(number.length() == 16){\r\n\t\t\tSystem.out.println(&quot;You card has been accepted. &quot;\r\n\t\t\t\t\t+ &quot;And your product will be delivered soon&quot;);\r\n\t\t}else{\r\n\t\t\tthrow new CardInvalidException(number);\r\n\t\t}\r\n\t\t\r\n\t}\r\n\r\n}\r\n<\/pre>\n<p>\n\t&nbsp;\n<\/p>\n<p>\n\t<strong><span style=\"font-size:16px;\">Assignment<\/span><\/strong>\n<\/p>\n<ul>\n<li>\n\t\t<span style=\"font-size:14px;\">Write a program which throws CVV invalid exception(if it is not 3 digit number), Card invalid exception(if it is not of size 16) and expiry date(if date&nbsp;is not greater than today, and not in mm\/yy format) and display exception message accordingly.<\/span>\n\t<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>JVM Monitor all the statements. If an error\/exception, then identifies corresponding Exception class. Create the object for Exception class. Throws the object. Catch the object &amp; terminate the Program JVM [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[3,2],"tags":[],"class_list":["post-78","post","type-post","status-publish","format-standard","hentry","category-java","category-technology"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p70lnf-1g","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=\/wp\/v2\/posts\/78","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=78"}],"version-history":[{"count":4,"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=\/wp\/v2\/posts\/78\/revisions"}],"predecessor-version":[{"id":84,"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=\/wp\/v2\/posts\/78\/revisions\/84"}],"wp:attachment":[{"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=78"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=78"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kaizen-koka.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}