一:异常架构
- Error 类层次描述了 Java 运行时系统内部错误和资源耗尽错
误。这类错误是我们无法控制的,同时也是非常罕见的错误。所以在编程中,不去处理这类错误。Error 表明系统 JVM 已经处于不可恢复的崩溃状态中。我们不需要管他。 如:写代码时突然断电,或者内存溢出。 - Exception:所有异常的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示地声明或捕获。
2.1 Runtime Exception
Runtime Exception类是 Exception 类的子类,叫做运行时异常,Java 中的所有运行时异常都会直接或者间接地继承自 RuntimeException 类。
2.2 CheckedException
Java 中凡是继承自 Exception,而不继承自 RuntimeException 类的异常都是非运行
时异常,也叫检查时异常。 如:IOException。 必须要对其进行处理,否则无法通过
编译。
二:异常代码
1. 捕获。
try代码段包含可能产生例外的代码
try代码段后跟有一个或多个catch代码段
每个catch代码段声明其能处理的一种特定类型的异常,进行捕获并提供处
理的方法
当异常发生时,程序会中止当前的流程,根据获取异常的类型去执行相应
的catch代码段
一个 try 后面可以跟多个 catch,但不管多少个, 最多只会有一个catch 块被
执行。
catch捕获异常需要从小到大捕获(先子类再父类)
finally段的代码无论是否发生异常都有执行
2. 抛出
在产生异常的方法声明后面写上 throws 某一个 Exception 类型,如 throws
IOException ,将异常抛出到外面一层去。
3. 编写异常类
- 通过继承java.lang.Exception类声明自己的异常类
- 在方法适当的位置生成自定义异常的实例,并用throw语句抛出
- 在方法声明部分用throws语句声明该方法可能抛出的异常