java异常处理与处理框架-笔记
1、Java异常分为checked异常和unchecked异常
checked异常(需要在代码中try……catch显示捕获)
所有继承java.lang.Exception的异常。是可以在执行过程中恢复的。此类异常不是程序中可以预测的,比如无效的用户输入、文件不存在等。这些都是外在的原因,都不是程序内部可以控制的。
unchecked异常(也叫错误,不需要显示捕获)
所有继承java.lang.RuntimeException的异常。是无法处理的错误。
2、异常到底应该在什么位置被记录?
在异常最初产生的位置。
如果是可以处理的异常,则处理之后不做记录。如果是无法处理的异常,则把可以仅仅把它封装成另一种异常并往上抛,不必再把已记录过的异常再记录一次。
3、记录异常不属于异常类的行为,记录异常类应该由专门的日志系统去做。
4、为系统提供一个异常处理框架,由框架来决定是否记录异常和怎么记录异常,而不是由普通程序员去做。
5、对于一个应用程序来说,发生所有异常在用户看来都是应用系统内部的异常。因此应该设计一套应用系统的异常框架,以处理系统运行过程中的所有异常。
可以设计一个应用系统的通用类,如AppException,并且这个异常以及这个异常的子类都是运行应用系统时发生的,因此AppException家族应该继承于RuntimeException,这样系统中所有的其他异常都转移为AppException,当异常发生时,前端统一接收到AppException并做统一的处理。
6、通用异常处理框架中需要提供配置信息的支持以及统一的异常处理类和异常日志记录类管理,并允许用户以插件形式扩展自定义的异常处理或日志记录方式。