异常:
概述: java程序运行不正常的情况, 就是异常
异常的继承体系关系:
Throwable:
|- Error 错误
|- Exception 异常
|- RuntimeException 运行期异常
|- Exception 编译期异常 , 它是今天的重点
异常处理的方式:
方式1: 出现了异常, 自己捕获,自己处理
格式:
try{
可能出现异常的代码
} catch (异常类名 对象名) {
//异常的处理
e.printStackTrace();
} finally {
必须要执行的操作
}
方式2: 出现了异常, 自己不处理,把该异常抛出来, 交给调用者来处理
格式:
修饰符 返回值类型 方法名(参数列表) throws 异常名1,异常名2....{
code..
}
多个异常的处理方式:
方式1: 每个异常单独处理
try{
} catch(){
}
try{
} catch(){
}
方式2:(推荐) 一个try多个catch
try{
} catch(){
} catch(){
} catch(){
}
注意: 多个异常中,如果有子父类关系, 父类的异常要放在后面
方式3: 平级异常 jdk7 出现新的异常处理方式
try{
} catch(异常类1 | 异常类2 | 异常类3...) {
}
在实际编写代码中, 出现了异常, 如何快速处理异常?
能抛throws 就抛throws,不能抛了,就踹(try)
Eclipse中 提供了一种异常快速处理方式 : ctrl+1
异常的两种处理方式
方式1: 遇到异常, 自己来解决
try..catch..finally
方式2: 遇到异常, 自己解决不了, 把异常抛出调用者,让调用者来解决
修饰符 返回值类型 方法名(参数列表) throws 异常类名 {....}
自定义异常:
创建一个类, 继承 Exception 类, 成为异常类中一个成员
如果创建一个异常对象, 抛出来
throw new 异常类名();
|