I\'m doing a review for our codebase, and there are many statements like this:
try
{
doSomething()
} catch (Exception e)
{
}
but I would l
If there's no throws
statement in doSomething
(e.g. doSomething() throws IOException
), any exceptions that will occur will be an instance of RuntimeException
. If you want to know the exact class of an exception thrown by doSomething
, you can always try
try {
doSomething();
} catch (RuntimeException e){
System.out.println(e.getClass().getName());
}
Knowing which runtime exceptions can be thrown without actually running the program is difficult. Even if none of the code that doSomething()
calls has an explicit throw, core java operations can always throw NullPointerException
, ArrayIndexOutOfBoundsException
, etc with the wrong input. Here are some ideas:
doSomething
.doSomething
should be ready for.In any case it's usually a good idea to catch exceptions that are as specific as possible, since you don't know exactly what went wrong when you try to deal with all cases in one clause.