I have heard that catching NullPointerException is a bad practice, and i think it is sensibly so. Letting the NullPointerException to propagate to the top would allow the detection of a something going wrong. But many times I have seen many of my friends catching Exception directly so that they need not bother about all the different kinds of exceptions that might occur in the above code. Is this a good practice? What are the other kinds of exceptions that are best left unhandled? And besides it also makes sense to me to handle NullPointerException over a specific code where we are sure of the source of the exception. So when are exceptions to be handled and when should they not be handled? And what would be the possible list of exception that are best left unhandled?
I have heard that catching NullPointerException is a bad practice, and i think it
Share
Pokemon exception-handling is bad. Especially, if it’s an empty block and you’re simply swallowing them. You have specifically-typed exceptions for the reason that they actually mean specific things in specific contexts (essentially they’re telling you what went wrong). So by catching
Exceptionyou’re saying that you don’t care what those exceptions are and that you don’t care what happened. This is probably not what you want.In general, when catching exceptions follow these rules:
You can easily check for a null value in your code, so there is no need to explicitly catch a null-pointer exception. It doesn’t make sense to let a
NullPointerExceptionhappen (and it’s bad practice). Even if you have some code that throws aNullPointerException, and it is code that you do not control and cannot fix, you should determine the input parameters that cause theNullPointerExceptionand specifically test for them.Another exception that you shouldn’t catch is the
IllegalArgumentException. This exception means that you’ve passed in an argument that does not make sense. Instead of catching this exception, you should explicitly test your input parameters to ensure that they are sane and that they cannot cause anIllegalArgumentException.