第六章 异常机制
来源:互联网 发布:中国云计算大会 2017 编辑:程序博客网 时间:2024/05/21 08:50
6.1 异常定义:
异常:在程序运行过程中出现的意外事件,导致程序中断执行。
6.2 异常处理:
Try...catch:
语法:
try{
//可能出现异常的代码
}catch(异常类型 异常对象名){
//处理异常的代码;
}
执行过程:
当try中的代码异常发生时抛出一个异常对象,该异常对象与catch中异常类型进行匹配,匹配成功进入catch块,否则不执行catch中代码(相当于异常未被处理)。
程序只有当异常处理成功后才能继续执行。
Try...catch...catch:
语法:
try{
//可能出现异常的代码
}catch(异常类型1 对象名){
//处理代码1;
}catch(异常类型2 对象名){
//处理代码2
}....
执行过程:当try中代码出现异常时,抛出一个异常对象,将该异常对象与catch块中异常类型依次匹配,匹配成功执行其下catch块中代码。
注意:异常类型的范围应该有小到大,先放子类异常类型,再父类异常类型。
Try...catch...finally:
语法:
try{
//可能出现异常的代码
}catch(异常类型1 对象名){
//处理代码1;
}catch(异常类型2 对象名){
//处理代码2
}finally{
//会被执行的代码
}
finally块中代码一定会执行,如果在try或catch块中存在retrun语句,先执行finally中的代码,然后执行return语句。
finally中代码只有在退出程序(退出虚拟机)时才不会执行---->System.exit()
Try...finally:
语法:
try{
//可能出现异常的代码
}finally{
//一旦会执行的代码
}
finally块中代码经常用于资源的释放,比如数据连接的关闭,IO流的关闭等。
throws和throw关键字:
如果在处理异常的过程中希望将异常抛出,就需要throws和throw
throws和throw的区别
1.位置不同:throws用于方法声明时,throw用于方法体中
2.类型不同(内容不同):
throws后跟的异常类型,throw后跟的异常对象
3.作用不同
throws在方法声明时告知调用者该方法存在的异常类型,throw在方法体内抛出某个具体的异常对象。
6.3 异常类型:
Throwable是所有错误和异常的父类。
--Error类:严重的错误
--Exception类:异常
异常的分类:
运行时异常(RuntimeException):不强制捕获程序就可以通过编译
常见的运行时异常
NullPointerException
ArrayIndexOutOfBounds
NumberFormatException
ClassCastException
InputMisMatchException
...
检查异常:强制捕获否则无法通过编译
SQLException
ClassNotFoundException
IOException
6.4 自定义异常:
当JDK提供的异常类型无法满足需要时,就需要自定义异常。
自定义异常的步骤:
1.自定义异常类:继承Exception或RuntimeException
2.在自定异常类的构造方法中调用父类的构造,传入自定义异常信息
3.创建自定义异常对象
4.使用throw将异常对象抛出
- 第六章 异常机制
- 第六章:异常处理
- 第六章 异常处理
- 第六章 异常
- OOP/第六章 异常
- 第六章 异常
- 第六章:Java_异常处理
- 第六章——异常
- 面向对象第六章 异常
- JAVA OOP第六章 异常
- java第六章-异常处理
- C/C++学习----第六章 异常处理
- 第六章 异常和文件处理
- JNI编程指南-第六章 异常
- 第六章-异常与中断的处理
- 第六章——异常(2)
- 第六章:【UCHome二次开发】缓存机制解析
- 第六章 Linux内核的Softirq机制
- ReactNative支付宝支付问题
- 深入理解Objective-C:Category
- PV操作
- 如何产看目录使用情况及空间有多大
- RedisTemplate操作String测试类
- 第六章 异常机制
- nginx配置负载均衡
- 日常学习2017.8.5
- GDOI训练 暑假round 2 8.5-8.25
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 link cut tree
- poj 2227 The Wedding Juicer
- idea can't resolve the symbol "servlet"
- HDU5533 Dancing Stars on Me(计算几何)
- ReactNative之弹出窗