Java异常的继承体系结构
- java.lang.Throwable是Java语言中所有错误或异常的超类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型
- Error类是指Java运行时系统的内部错误和资源耗尽错误,应用程序不会抛出该类对象,如果出现了这样的错误,除了告知用户,剩下的就是尽力使程序安全终止
- Exception主要分为两类,一个是IOException(I/O输入输出异常),又被称为CheckedException(受查异常);另一个是RuntimeException(运行时异常),相应被称为UnCheckedException(非受查异常)
- Error类也归属于UnCheckedException,这种类别下的异常是运行时发生的,无法预先捕捉处理的;与此对应,CheckedException是需要在代码中处理的,可预测的异常
- 关键字throws用于声明异常,throw用于抛出异常,try后执行可能产生异常的代码,catch捕获异常,finally后放置无论是否发生异常都需要被执行的代码
一些常见的异常
- 常见的非受查异常
- 常见的受查异常
Java异常的处理方式
- try-catch关键字可以捕获异常,其中try块中执行可能出现异常的代码,catch块包含要捕获异常类型的说明,当一个try后面跟随多个catch时的情况就叫多重捕获
- throw/throws关键字用于抛出异常,其中throw关键字在代码段中使用,throws关键字放在方法签名的尾部,用于声明当前方法可能出现的异常,从而向上传递,在调用位置处理
- finally关键字用于创建在try-catch代码块后面执行的代码块,无论是否发生异常,finally块中的代码都会被执行,通常运行清理类型收尾善后性质的语句
- 参考资料:Java异常的几种处理方式
- 参考资料:Java异常体系
- 参考资料:Java中的异常和处理详解
- 参考资料:深入理解Java异常处理机制
- 参考资料:Java:详解Java中的异常