背景:
系统经常有各种各样的异常,有编程性失误造成的空指针,有违反数据完整性的异常,有违反业务规则的异常等,在常用的三层架构中,每一层的异常如何处理(是抛,还是处理,还是吞没),最后如何反馈给前端,都是个问题
几个点:
1、checked 还是 unchecked
2、api与普通web的异常统一处理还是分开
3、统一拦截处理,还是手工处理
解决:
1、针对对外接口,可以抛checked异常,让调用方知道要处理
2、针对对内的,自定义为unchecked,在controller层捕获处理