Catching generic Exceptions

Ben Bucksch ben.bucksch at beonex.com
Tue Sep 1 00:26:13 UTC 2015


JR Conlin wrote on 01.09.2015 01:04:
> At my last employer, catching all exceptions was considered a bad 
> thing. Granted, that was providing a service, so failing out meant, at 
> worst, the remote connection had to be re-established. I'll agree that 
> eating exceptions here is probably not a bad thing since killing the 
> browser would not be a good user experience. 

Agreed. That's the big difference. Thanks for explaining the *reason* 
for the 2 different schools of thoughts.

In UIs, I always catch all exceptions at the level where the action was 
originally initiated - that's usually the event handler attached to the 
UI element.
If I can recover from an error at a lower level, I do.
If I cannot, I construct a user-friendly error message on the low level, 
then bubble up the exception to the event handler, and there I catch all 
exceptions and show an error message to the user. The error message can 
then show in the UI context where it was initiated, which sometimes is 
in a popup dialog, and sometimes a red inline text in a window, e.g. in 
a login window that stays open until the login is complete, with 
progress indicator and inline error display.

> The reasonable exception I make is when we don't control the code that 
> could be throwing

Agreed.

> In general, we will never spot an error if we log or catch. Only 
> developers will see those, and if you're muffling to avoid 
> user-visible behavior, succeeding means nobody will notice!

Yes, agreed. Never eat errors. The user needs to know what exactly (!) 
went wrong.


More information about the mobile-firefox-dev mailing list