Another type of situation where this may be warranted is in finally clauses doing cleanup, where one does not want an error to mask an original exception and the cleanup problem may be logged but not critical.

--a.



On 8/6/13 10:31 AM, Glen Mazza wrote:
Yes, I'll look at them case-by-case (if no objections from anyone else).

Glen

On 08/06/2013 01:20 PM, Anil Gangolli wrote:

Some of these may be intended and necessary when catching IOError, NoClassDefFoundError and others. [At least the instance in GuiceWebloggerProvider, for example, seems to be there to catch the latter.] Some of them appear not to be needed, and it may be possible to make them more specific, but I wouldn't just uniformly change them. I'd suggest looking at the 34 cases individually.

--a.



On 8/6/13 10:01 AM, Glen Mazza wrote:
Hi folks, Sonar is complaining that in 34 cases[1] we're catching Throwable, which is not recommended as it ends up catching java.lang.Error messages (http://docs.oracle.com/javase/7/docs/api/java/lang/Error.html) for non-application system problems that should instead percolate up to the JDK and/or application server to be handled and reported at that level. The googling I've done ([2] for example) tends to agree with Sonar outside of a few special circumstances (e.g., calling a poorly written 3rd party library that throws Errors for normal app exceptions).

I'd like to switch them to catching Exception() instead (which has its own headaches[3], but is an improvement), which lets the java.lang.Errors pass to the JDK and/or servlet container. If it turns out in a few of the cases it might actually be better to catch Throwable (looking at the 34, I'm not seeing anything though), we can re-instate it in those cases, but this time just add a comment on why we're catching throwable. WDYT?

Thanks,
Glen

[1] https://analysis.apache.org/drilldown/issues/145470?&rule=pmd%3AAvoidCatchingThrowable&rule_sev=CRITICAL&severity=CRITICAL [2] http://stackoverflow.com/questions/6083248/is-it-a-bad-practice-to-catch-the-throwable
http://stackoverflow.com/questions/352780/when-to-catch-java-lang-error
[3] http://doc.nuxeo.com/display/CORG/Catching+Exceptions




Reply via email to