Yes,
you can throw a runtime exception from static block.
Connection.java
package com.sample.app; public class Connection { static { int a = 10; if (a == 10) { throw new RuntimeException("Error Occured while loading the class"); } } }
Application.java
package com.sample.app; public class Application { public static void main(String args[]) { new Connection(); } }
When
you ran Application.java, you can see below messages in console.
Exception
in thread "main" java.lang.ExceptionInInitializerError
at
com.sample.app.Application.main(Application.java:6)
Caused
by: java.lang.RuntimeException: Error Occured while loading the class
at
com.sample.app.Connection.<clinit>(Connection.java:8)
... 1 more
Can’t I throw checked
exception?
You
can’t throw the checked exception directly. But you can throw the checked
exception by wrapping it inside RuntimeException.
Connection.java
package com.sample.app; public class Connection { static { int a = 10; if (a == 10) { try { throw new Exception("Error Occured while loading the class"); } catch (Exception e) { throw new RuntimeException(e); } } } }
When
you ran Application.java, you can see below messages in the console.
Exception
in thread "main" java.lang.ExceptionInInitializerError
at
com.sample.app.Application.main(Application.java:6)
Caused
by: java.lang.RuntimeException: java.lang.Exception: Error Occured while
loading the class
at
com.sample.app.Connection.<clinit>(Connection.java:11)
... 1 more
Caused
by: java.lang.Exception: Error Occured while loading the class
at
com.sample.app.Connection.<clinit>(Connection.java:9)
... 1 more
You may like
No comments:
Post a Comment