What is a good way to do exception handling? I read in a book that everything excluding simple variable declarations should be in a Try Catch block. This make sense to me on the GUI side, but how about in the other tiers? Should I be including all code in my business classes and Data classes in Try Catch blocks? I tried this and it seems like it is overkill, as I usually end up just rethrowing the exception (sometimes multiple times) and letting the GUI handle it.
What does everybody else do?