Just stumbled over this quote – I really love it and I couldn’t agree more. The old staying still goes that if you catch the exceptions it is your responsibility to handle it – so don’t catch exceptions everywhere which are difficult to predict the origin and intention of. In most cases I would definitely like the exception and not want it to be caught at a lower level. Yada yada – please just enjoy the quote:
Anders Hejlsberg: It is funny how people think that the important thing about exceptions is handling them. That is not the important thing about exceptions. In a well-written application there’s a ratio of ten to one, in my opinion, of try finally to try catch. Or in C#, using statements, which are like try finally.
Bill Venners: What’s in the finally?
Anders Hejlsberg: In the finally, you protect yourself against the exceptions, but you don’t actually handle them. Error handling you put somewhere else. Surely in any kind of event-driven application like any kind of modern UI, you typically put an exception handler around your main message pump, and you just handle exceptions as they fall out that way. But you make sure you protect yourself all the way out by deallocating any resources you’ve grabbed, and so forth. You clean up after yourself, so you’re always in a consistent state. You don’t want a program where in 100 different places you handle exceptions and pop up error dialogs. What if you want to change the way you put up that dialog box? That’s just terrible. The exception handling should be centralized, and you should just protect yourself as the exceptions propagate out to the handler.