您的位置:首页 > 其它

异常处理

2016-05-02 19:47 183 查看

异常处理(没有无异常的程序)

概念:异常是程序在执行过程中所产生的问题。

异常分类:

1.编译期异常(检查异常–Checked Exception): 检查异常通常是用户错误或者不能被程序员所预见的问题。

2.运行时异常(不检查异常–Unchecked Exception):运行时异常是一个程序员在运行过程中可能发生的、可能被程序员避免的异常类型。

★注:错误:错误不是异常。区别:异常能够用代码去纠正,而错误不能够用代码去纠正。如:硬件问题,运行环境问题。

异常的类型

Throwable–Error、Exception—RuntimeException(ArithmeticException、IllegalArguementException)、IOException

捕获异常()

try-catch

try{

正常逻辑下有可能发生异常的代码

}catch(异常类型){

处理代码

}catch(){

处理代码

}

★注:1.异常处理只要在返回虚拟机处理之前处理即可。2.当多个catch块之间存在继承关系的时候,子类catch块写前面,父类catch块写后面。

4>- try-catch- finally

try{

正常逻辑下有可能发生异常的代码

}catch(异常类型){

处理代码

}catch(){

处理代码

}finally{

始终执行的代码

}

★注:finally中书写不管是都发生异常都必须要执行代码,就算有return、break等跳转语句,也要先执行finally,再跳转。

1.特殊情况。

int x;
try{
x=1;
return x;
}catch(Exception ex){
x=2;

}finally{
x=3;
}
return x;
此时x的值为1.
若为引用类型,则还是finally的值。.


- *finally*关键字

用于: 资源的清理,通道的关闭,各种连接用完以后的关闭。

- throw 关键字与throws关键字

完整方法名:访问修饰符+可选修饰符+返回类型+方法名+形参列表+抛出异常类型 例如:public void A()throws Exception{ }

区别

throw是写在方法体当中的,后面接的是异常对象,一旦执行到这步代码就会真正的执行异常抛出的动作;

throws是写在方法声明的最后,后面跟的是异常类的类名,可以跟多个,中间用逗号分隔。警告方法的调用者,本方法有可能会发生某些类型的异常。

★注:当throw后面跟的是运行时异常的时候,编译器不会强制我们在本方法后面加throws,就算我们自己加,本方法的调用者也不会在编译期收到警告。如果右面跟的是编译期异常的时候(包括Exception),编译器会强制我们在本方法的声明后面加上throws。

- 自定义异常

1.首先要继承Throwable或者Exception。

2.书写带参构造,将已发生的异常对象的信息,封装到自定义异常对象身上。书写带参构造,将业务异常信息装入自定义异常对象身上。

3.添加自定义异常的特有方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: