devxlogo

Catching Exceptions

Catching Exceptions

Question:
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){}

Answer:
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.

See also  Comparing different methods of testing your Infrastructure-as-Code
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist