My suggestion would be (in case you haven't already) to create specific method for each operation you wish to perform. i.e one for Database Access. Also have a controller method which makes the appropriate method calls.
Declare all of you "worker" methods to throw their respective Exceptions, and in the controller method wrap your method calls in one try/catch.
Cheers