It is usually difficult to find a good exception handling strategy. Each approach has its drawbacks. In particular, Yours is good in a way (a centralized place to handle failures), but suffers from this drawback:
The exception handler that you describe will have special handling for every possible exception. Over time, it will become the focus of your application: every time you add new functions, you also need to add exception handling logic for your handler. It means that:
. ( - ), . , - , (, , ), . , . . , , , ( /?)