Java中的异常
异常分类:
编译器异常:还未运行编译器显示报错
运行异常: 编译后出现的报错
抛出异常throw
throw可以在指定方法中抛出指定异常
使用格式
throw new xxxException(“异常产生的原因”);
注意事项:
1.throw关键字必须写在方法内部
2.throw关键字后边new的对象必须是Exception或者是Exception的子类对象
3.throw抛出指定的异常对象 必须处理
处理方式:
1.throws
2.try…catch
throws
用throws关键字处理异常对象,会把异常对象声明抛出给方法的调用者处理(自己不处理,给别人处理),最终交给JVM处理 --> 中断处理
使用格式:在方法声明时使用
修饰符 返回值类型 方法名 (参数列表) throws {
throw new AAAException("产生原因");
throw new BBBException("产生原因");
}
注意:
1.throws关键字必须写在方法声明处
2.throws关键字后边声明的异常必须是Exception或者是Exception的子类
3.方法内部如果抛出了多个异常对象,那么throws后边必须也声明多少异常
捕获异常 try … catch
自己处理异常
格式:
try{
//可能产生异常的代码
}catch(定义一个异常的变量,用来接受try的异常对象){
//异常的处理逻辑,产生异常对象之后,用代码处理异常对象
//一般在工作中,会把异常的信息记录到日志中
}catch(){
}catch(){
}
注意:
1.try中可能会抛出多个异常对象,那么就可以使用多个catch来处理这些异常对象
2.如果try中产生了异常,那么就会执行catch中的异常处理逻辑
Throwable类中3个异常处理的方法
1.String getMessage( ) 返回此 throwable 的简短描述。
2.String toString( ) 返回此 throwable 的详细消息字符串。
3.void printStackTrace( ) JVM打印异常对象,默认此方法,打印的异常信息是最全面的
finally代码块
无论是否产生异常 都会执行finally内代码
必须和try一块使用
finally一般用于资源释放(资源回收),无论程序是否出现异常,最后都要资源释放(IO)