I really like the way that we do it at Lightmaker, it makes things nice and simple and easy to debug!It also allows us as developers to follow good practice in our business and data layers and not worry about exception handling.In your Sitecore implementation, if you are following a good componentised practice, you probably have a few layers in your code.
Presentation: Views, razor scripts that mix the markup and the data from the view model and present it to the user.
It is so much better to simply allow any exceptins to bubble up to the top of the stack and leave a clear message and stack trace in the error log.
Depending on the application, give some indication that there has been a problem in the UI.
What happens when the application continues executing?
It’s probably now in an inconsistent state that will cause extremely hard to debug problems in some unrelated place, or even worse, inconsistent corrupt data that will live on in the database for years to come.