黑马程序员——异常处理
来源:互联网 发布:战舰世界加贺数据 编辑:程序博客网 时间:2024/06/07 19:56
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
5.1. 异常体系
Java.lang
|--Object
|--Throwable
|--Error
|--Exception
|--RunntimeException
5.2.throw和throws的区别
Throws:自动抛出,在函数后调用,抛给调用者,可以抛出对此,最终抛出给虚拟机,由虚拟机调用printStackTrace()方法,程序停止。
Throw:使用在函数内部,后面跟异常对象,使用时除了RunntimeException以外,要在函数上声明抛出异常。
5.3. 两种异常
编译时异常:编译时候被检查,如果没有进行处理,编译失败,当处理异常发生位置,进行处理,跳出函数(函数后面的语句不再执行),程序继续运行。
运行时异常:编译时候不被检查,异常发生建议让程序停止,修改代码
自定义异常:
1. 必须继承Exception、RunntimeException类(Exception体系中有一个特殊的功能,异常类和对象被抛出,这个是Throwable类中的特性,只有该类及子类才能调用 throw和throws)
2. 继承了Exception中的所有方法super()
RunntimeExcpetion:
1. 如果在函数内部抛出了,那么函数上不用声明,编译一样通过
2. 如果在函数上声明了该类异常,调用时候,不用进行处理
3. 如果自定义异常发生,无法继续执行,那么就让他继承RunntimeException,程序终止,修改代码
RunntimeExcpetion为什么用生命异常?
因为该类异常不需要调用者进行处理,当异常发生的时候,程序停止,因为在运行的时候发生了无法继续运算的情况,希望程序停止后,对代码进行修改。
5.4. 异常的几种格式
Try{}catch(){}
Try{}catch(){}catch(){}
Try{}catch(){}finallu{}
Try{}finally{}
Finally:定义一定会执行的代码,通常用于关闭资源。
多异常处理:
try{}catch(){}catch(){}…..
异常不会同时发生,一旦发生程序就会跳转到catch中进行处理,函数中,发生异常的语句下面的代码不再被执行,对方声明几个一异常,就对应几个catch块,如果多个异常存在继承关系,父类放在后面。
子类覆盖父类的方法:
1.不抛异常
2. 抛父类的异常
3. 抛父类异常的子类
4. 如果子类产生其他异常,用catch
5. 如果父类抛出多个异常,子类抛出父类异常的子集
6. 如果父类方法没有异常,方法覆盖时,子类不可抛异常,如果有异常出现,用catch
5.5. 附加问题
1.finally什么情况会读不到?
在System.exit(0)的时候,程序退出,不读finally
2.异常的好处?
将问题封装,将程序代码和异常代码分离,方便阅读
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com- 黑马程序员——异常处理
- 黑马程序员——多异常处理
- 黑马程序员——异常处理
- 黑马程序员——异常处理
- 黑马程序员——异常处理
- 黑马程序员——异常处理
- 黑马程序员——异常处理
- 黑马程序员—异常处理机制
- 黑马程序员—C#异常和异常处理
- 黑马程序员---异常处理
- 黑马程序员--异常处理
- 黑马程序员--异常处理
- 黑马程序员-异常处理
- 黑马程序员--异常处理
- 黑马程序员 异常处理
- 黑马程序员 ---- 异常处理
- 黑马程序员--异常处理
- 黑马程序员-异常处理
- A - Red and Black(3.2.1)(搜索)
- [LeetCode] Implement strStr()
- 马踏棋盘(简单广搜)
- Android NDK-STACK Tool
- 遍历出基础教程视频文件夹里所有视频名称
- 黑马程序员——异常处理
- RabbitMq的配置
- Linux下的目录创建命令使用实践
- 题目1389:变态跳台阶
- 20140714 「初等数论 - 中国剩余定理」 POJ 1006 Biorhythms
- Sublime Text 2搭建Go开发环境,代码提示+补全+调试
- E - Speed Limit(2.1.1)
- H - Gold Coins(2.4.1)
- android 输入密码连接指定的wifi热点