大家都是怎么用spring aop来做业务异常处理的?
业务代码中会有大量自定义的异常会在业务层抛出,来标识各种特定的业务错误,这些异常对于业务层以上的api层而言,肯定是需要定义为checked异常的,需要处理。但是同时由于服务间都是通过RPC调用,其他服务不会关心这些异常或者说不希望通过抛出异常的方式来得知各种异常情况,因此需要在api层处理掉这些异常。
因为有aop的存在,很自然地想到用aop来统一处理各种异常。但是aop是在运行时生效,编译的时候如果api层不处理这些异常,编译器自然是通不过的。解决方案就是:. 将自定义的异常都定义为RuntimeException,但是这样感觉太暴力,也不是业务层希望看到了,违背了java健壮性的初衷,感觉怪怪的。
不知道大家有没有遇到类似问题,都是怎么解决的呢?