1,提倡异常封装
友好性:阅读者,开发人员需要查找问题,需要打印出堆栈信息,而用户需要了解具体业务原因,如文件太大,不支持该类型文件上传等.
可维护性:对异常进行分类处理,并进行封装输出!根据输出日志,就可以对异常有初步判断,不需要到代码层级去分析问题!
抛出多个异常
2,异常链封装异常
先封装然后传递
抛出到展现层的异常,开发,打印堆栈,否则展示封装后的异常信息
传递异常需要保留原始异常信息=继承异常栈
3,受检异常尽可能转为非受检异常
接口有多个实现者,一个实现者的方法的实现增加了抛出异常,其他实现者也需要追加异常的处理!增加了接口的不稳定
controller 对所有异常进行统一处理