异常处理
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.添加自定义异常的特有方法。
相关文章推荐
- 多态与抽象
- 判定表
- 青蛙总动员
- HDU-1041-Computer Transformation,大数递推,水过~~
- 通过MultipleOutputs写到多个文件
- POJ 2226 Muddy Fields
- NYOJ 20 吝啬的国度
- [C++]继承与面向对象设计
- CSAPP 学习笔记 Chapter two & three
- yii2.0 自带验证码项目总结
- “hackers and painters”读书笔记
- 如果你使用WebView+FloatingActionButton
- 大作业:电梯设计的概要设计文档
- springMVC <mvc:default-servlet-handler /> 导致controller无效
- 2016年4月28日(6985小时时),第一次签合同,里程碑
- STM32F429的定时器的使用方法
- Android适配问题
- The string "--" is not permitted within comments.问题解决
- iOS开发------使用Xcode编译器定位抛出异常的位置
- 序列化流的使用(二)