12、异常

1、早期错误处理模式:通常返回某个特殊的词或者设置标记,假定接收者对这个词或者标记进行检查,判定是否发生了错误。
2、异常:使用new在堆上创建异常,异常会记录发生的地方,方法调用记录,发生了什么错误。
         发生异常后,当前执行路径被终止,并从当前环境中抛出异常的引用。
异常处理机制:异常处理机制接管程序后会寻找合适的异常处理程序。
异常处理程序:发生异常后的修复程序。
使用 throw 抛出异常。
throws异常说明,在方法参数的后边花括号的前边,表示程序可能引起的异常。多个异常之间可以使用逗号分隔。
接口和抽象类中应预先声明异常。

3、异常参数:标准异常类有两个构造器,默认构造器和接受字符串作为参数的构造器。
4、捕获异常
try:将可能发生的异常放置在try块中,发生异常是可以被捕获。
catch:异常处理程序。catch接收且仅接收一个特殊类型的参数。
捕获所有异常:捕获异常类型的基类Exception

try块发生异常,异常处理机制会查找第一个匹配的catch块处理这个异常。
异常类B继承自异常类A,则捕获异常类A的异常时也可以捕获到异常类B的异常.

5、创建自定义异常:
必须从已有的异常类继承

6.printStackTrance():返回一个由所有栈轨迹中的元素组成的数组,元素0是栈顶元素是最后一次调用的方法,是异常产生的地方。
数组中的最后一个元素是调用序列中第一个方法调用。
7、3种基本异常类:Exception RunTimeException Error
7.JAVA标准异常:
Error:表示编译时和系统错误
Exception:可以抛出的异常基本类型。
8、finally:把内存之外的资源还原到初始状态用到,如:处理已经打开的文件或者网络连接
无论try块是否抛出异常,Finally都会执行。
在异常没有被当前异常处理程序捕获的情况下,异常处理机制在跳到更高一层的异常处理程序之前会调用finally块.
当涉及break continue 的时候,finally块也会被执行。
由于finally块总是会执行,可以在程序中设置多个返回点(return),可以保证重要的清理工作仍旧会执行。
9、异常丢失
例如程序在try中产生异常,catch未捕获到这个异常,程序执行finall块,
fianlly块中的程序产生异常,一个异常尚未处理就抛出下一个异常。
10、异常的限制:子类覆盖父类方法的时候,只能抛出基类方法的异常说明中列出的异常,或者抛出基类方法异常说明中异常的子类异常,或不抛出异常.
为什么如此限制?
因为子类类型向上转型为父类类型,编译器会要求程序调用方捕获父类方法可能抛出的异常,这样就会忽略子类方法可能抛出的异常,所以添加此限制.

方法的重载是基于方法名和方法参数列表,如果子类方法和父类方法的异常说明不一致,不是方法的重载。

11、构造器中发生异常,程序的清理工作也会产生问题,可以在构造器中使用嵌套Try块处理。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值