Difference between using Throwable and Exception in a try catch

jax picture jax · Feb 16, 2010 · Viewed 201.3k times · Source

Sometimes, I see

try {

} catch(Throwable e) {

}

And sometimes

try {

} catch(Exception e) {

}

What is the difference?

Answer

Yishai picture Yishai · Feb 16, 2010

By catching Throwable it includes things that subclass Error. You should generally not do that, except perhaps at the very highest "catch all" level of a thread where you want to log or otherwise handle absolutely everything that can go wrong. It would be more typical in a framework type application (for example an application server or a testing framework) where it can be running unknown code and should not be affected by anything that goes wrong with that code, as much as possible.