一、异常的分类
ps:
1)Error是指使程序直接完蛋,没法在运行的问题。Exception是指这样一类问题,当这些问题发生时,虽然会有不好的影响,但是程序还是可以继续运行的。Error是失败,Exception是曲折。
2)CheckedException与RuntimeException的区别:
CheckedException是外因,RuntimeException是内因。
3)CheckedException在编译时要try一脚,或者是扔出去,RuntimeException要凭借经验增强代码的健壮性,将问题消灭在摇篮里。
二、异常产生的原因及处理方法
1、异常产生的原因:方法内部进行了 throw
2、处理意见:try..catch 或者throws。交个上层处理
三、Throwable提供的处理异常的方法
1、toString() : 异常对象转成字符串
2、printStackTrace() :打印堆栈信息
3、getMessage() :错误信息
四、声明异常
如下所示:
1) throw:方法内抛出异常。在方法内部相当于return返回值,throw之后如果还有代码不会执行了。
2)throws >=throw 。这里指throw扔出去的东西必须是throws的晚辈,或者一样
五、try catch捕获异常
下图说明一个问题 catch finally块在return之间执行。
这里的意思是is = new 哪行代码执行成功后会先执行finally里的语句,之后执行return。
但是,如果哪行代码出错则会执行catch和finally里的代码
最后如果虚拟机停止运行时不会执行finally里的内容
六、1.7的改进
1、多重捕获:如下图所示。但是,注意多重捕获不能存在继承关系,如果存在会出现编译错误。
2、自动释放资源 :好处可以省略finally块。
如下所示:
3、智能声明
七、自定义异常
编写一个类 继承 Exception{
类(){
}
类(String msg){
super(msg)
}
}