异常机制
- 1. 程序中的异常
a)
b) 面对异常如何解决
i. 由开发者通过if-else来解决
- 代码臃肿
- 程序员需要花费很大精力
ii. 由Java提供异常机制
- 异常处理代码与业务代码分离
- 高容错性、高健壮性
- 2. 异常引入
a) 定义:程序运行时发生不正常事件时,如文件找不到,网络中断,数组下标越界;
b) 处理:
i. 异常所处方法中产生一个异常对象
- 异常对象包含异常的类型
- 程序运行时状态
- 异常的详细描述
ii. 五个关键字来实现
- 捕获异常
a) try 可能产生异常的代码
b) catch 捕获异常
c) finally 不管是否发生异常,代码都执行
- 声明异常
a) Throws
- 手动抛出异常
a) Throw
- 3. 异常处理
a)
b) Try-catch如何处理?
i. 输出用户自定义异常信息
ii.
iii. 继续向上抛出异常
c) 异常类型
i.
d) Finally
i. 无论是否发生异常,finally代码块总是执行
ii. 通常用于关闭已打开的资源,如文件流,释放数据库连接
iii. 异常处理代码执行System.exit(1),不执行finally
iv.
e) 多重catch
i.
- 4. 异常分类
a)
b) Error
i. 一般是与JVM与动态加载等问题
ii. 无法控制
iii. 不需要管理
c) Exception:所有异常类的父类
i. 运行时错误 Runtime exception
ii. 不必处理,系统自动处理
iii. 一类特殊异常,如被0除,数组下标越界,不显式声明,
iv. 检查异常 Checked exception
v. 必须捕获处理,否则会编译错误
- 抛出异常
a)
b)