Bootstrap

Java自定义Exception

这里总结一下Java的Exception,并实现一个自定义Exception类。

总结:

  1. Throwable对象分为两种类型:Error(表示编译时和系统错误);Exception(在Java类库、用户方法以及运行时故障中抛出的异常)。
  2. Exception细分成两种异常:受检查异常(如,IOException, SQLException等。在编译时要被强制检查的异常,需要用try, catch, finally关键字在编译时期处理,否则会报错。);运行时异常(如,ArithmeticException, ClassCastException, IllegalArgumentException, IndexOutOfBoundsException, NullPointerException等。编译器不会检查这类异常。)
  3. Java编程中处理异常的最佳实践[4]:
    • 为可恢复的错误使用检查型异常,为编程错误使用非检查型错误。
    • 在finally程序块中关闭或者释放资源
    • 在堆栈跟踪中包含引起异常的原因
    • 始终提供关于异常的有意义的完整的信
    • 避免过度使用检查型异常
    • 将检查型异常转为运行时异常
    • 记住对性能而言,异常代价高昂
    • 避免catch块为空
    • 使用标准异常
    • 记录任何方法抛出的异常
  4. 受检查异常和运行时异常的区别:
    • 受检查异常需要自行处理,运行时异常不需要
    • 受检查异常是Exception直接子类,运行时异常是RuntimeException的子类
    • 受检查异常多是编程时出现的错误,运行时异常是程序运行时故障率较高
  5. 避免出现NullPointerException的最佳实践[5]࿱
;