How can Java programs crash when exceptions must always be caught? -


this question has answer here:

forgive me if stupid question, far know, java exceptions must caught , handled. example, create compiler error:

public string foo(object o) {     if (o instanceof boolean) {         throw new exception();     }     return o.tostring(); } 

because method foo() didn't add throws clause.
however, example work (unless either method foo() didn't have throws clause or method bar() didn't surround usage of foo() in try/catch block):

public string foo(object o) throws exception {     if (o instanceof boolean) {         throw new exception();     }     return o.tostring(); }  public void bar(object o) {     try {         string s = foo(o);     }     catch (exception e) {         //...     }     //... } 

at end, java program still crashes due unhandled exception.

how happen?

you don't have handle all kinds of exceptions.

exceptions inherit java.lang.runtimeexception or java.lang.error so-called unchecked exceptions can caught try-catch construct, don't have be, though.

as can see in api docs of java.lang.error, not inherit java.lang.exception. reason, not caught try-catch block - java.lang.exception , subclasses.

have @ this article in docs.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -