- 不应该捕获
Throwable
和Error
类 - 永远不应该调用
Throwable.printStackTrace(...)
- 通用异常永远不应抛出
Error
,RuntimeException
,Throwable
和Exception
- 异常处理程序应保留原始异常
- 不应使用
System.out
或System.err
来记录异常
不应该捕获Throwable
和Error
类
try {
cl = Thread.currentThread().getContextClassLoader();
}catch (Throwable ex) { //Non-compliant code
}
Throwable
是Java
中所有错误和异常的超类。错误是所有错误的超类,不应由应用程序捕获。因此,捕获Throwable
本质上意味着诸如系统异常(例如,OutOfMemoryError
,StackOverFlowError
或InternalError
)之类的错误也会被捕获。并且,推荐的方法是应用程序不应尝试从诸如此类的错误中恢复。因此,不应该捕获Throwable
和Error
类。只应捕获异常及其子类