异常(Exception)

有关异常的内容很琐碎,不具有很强的连贯性,尝试与其它的知识结合起来去理解记忆。

是什麽——>为什么——>怎么做

是什麽?

异常:程序运行过程中可能会出现的异常事件。百度百科中的图对其分类做了很好的解释(http://baike.baidu.com/subview/209658/8059007.htm#viewPageContent)


Error:由系统处理

RuntimeException:可处理可不处理

Exception中另一分支:必须进行捕获处理

为什么?

这可从其优点处考虑:

1)强制程序员考虑程序的安全性和健壮性
2)增强了程序员对程序的可控性
3)把对错误进行处理的代码从常规代码中分离出来

怎么做?

异常的抛出

throw new 异常名(参数);

抛出的异常可以是系统设置好的异常,也可以是程序员自己定义的异常【但自定义的异常必须继承自系统设置的异常(Throwable或Exception)】,如上图中所示,一般从Exception继承

捕获处理

有两种方式

1)try...catch...在本方法内部处理

2)throws 返回给上一级处理【要注意的是,throws中不一定会有异常抛出;若对异常做了内部处理,就不要再throws】

try {
	//可能会出现异常事件的程序
}
catch (异常类别 异常名) {
	//捕获后对异常的处理操作
}
catch (异常类别 异常名) {
	//捕获后对异常的处理操作
}
finally {
	//不管是否出现异常,都会执行finally中的程序
}
要注意以下几点:

(1)异常类似于if...else if...else语句,但在输入输出出现异常的环境下,只有异常可以进行处理【因if...else需导入输入输出信息才可判断,并且是直接认定程序运行出错,没有缓冲处理】

(2)每次只能有一个catch被执行(也可一个都没有)
(3)重写后抛出的异常对象的范围不能超过父类的范围

(4)catch的顺序:子类在前,父类在后【父类在前会报错】

(5)finally中的语句必定会被执行【可用来对异常进行整体的处理,或是做一些程序中需要的处理操作】

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值