第十一章 异常

11.1 概述

异常发生在运行时

将程序运行中常见的问题抽象为对象-Exception

类中包含(封装)了问题的一些信息(eg:名称,位置)

方便将功能代码和异常处理代码分离


11.2 Throwable

一般可处理的:Exception

一般不可处理的:Error

两者均即成Throwable类

throw和throws关键字将异常抛出

Error是又JVM抛出的较为严重的问题


11.3 原理

在Exception发生时,new一个该Exception,并抛出,main方法将异常抛给JVM,JVM在命令行中打印,并写入log。


11.4 Runtime Exception

除了运行时异常,其它异常均在编译时被检测。

普通异常可以针对性的解决,但Runtime Exception发生时运算无法继续。

多数是由于调用的原因,或者引发了内部状态的改变,运行中遇到时强行停止。


11.5 异常的捕捉

try{
//被检测的代码,包含可能抛出异常的功能
}
catch (Exception e){
//处理e异常的
}
finally{
//一定会执行的代码
}
try后可以跟多个catch捕捉不同异常

11.6 异常处理原则

catch到的异常必须处理,否则程序将继续运行。

1)如果方法可能抛出非Runtime异常,该方法必须声明throws,或用try-catch捕捉

2)调用到抛异常的方法是,必须使用throws 或try-catch

3)可解决时用try-catch,不易解决时将异常throw给调用者

4)抛出多个异常,必须多个catch进行针对性处理


11.7 finally

包含一定会执行的代码,即使catch到异常。(除非System.exit(0); 推出JVM)

一般为关闭或释放资源的动作


11.8 注意事项

1)子类覆盖父类方法是,如果父类方法抛出异常,则子类必须抛出此异常或其子类异常。(可以不抛)(考虑多态)

2)父类抛出多个异常时,子类只能抛出父类异常集的子集。

3)父类若没有抛出异常,子类覆盖方法是也不能抛出异常。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值