Catching Exceptions

Catching Exceptions

Do you have to individually catch each exception that a method maythrow? Or can you just have one generalized catch?For example, can I do this?:

try{    method1 //which throws exception1    method2 //which throws exception2}catch(Exception e){}

No, you do not have to catch each individual exception and you may havea generalized catch statement such as the one you present. However,this is not a good habit to get into. Sometimes, when you’re quicklyprototyping an application, you may do this in order to more quicklyget to the point at which you start testing your code. In generalit is a bad idea because you will not know what exception has occurredand you will therefore not be able to properly handle the exception.

One case where it is justified is where you’ve properly handled allchecked exceptions, but in order to keep your program from crashing,you wrap the code in a thread with a try/catch to catch allRuntimeExceptions. You should only do this when you can gurantee robustrecovery. Do not take this to mean that you have to cach everySocketException, ConnectException, EOFException, etc. It is perfectlyacceptable to just catch an IOException if every SocketException,ConnectException, EOFException, etc. will be handled in exactly thesame way.


Share the Post: