Java异常机制


(2018.03.02)
1.使程序中的异常处理代码和正常业务代码分离,提高健壮性;
2.关键字:try、catch、finally、throw、throws
3.Java异常分为Checked异常和Runtime异常,Checked异常都是可以在编译阶段被处理的异常,所以Java强制程序处理所有的Checked异常;而Runtime异常则无需处理。
4.访问异常信息
getMessage():返回该异常的详细描述字符串;
printStackTrace():将该异常的跟踪栈信息输出到标准错误输出;
printStackTrace(PrintStream s):将该异常的跟踪栈信息输出到指定输出流;
getStackTrace():返回该异常的跟踪栈信息;
5.程序在try块里打开了一些物理资源(数据库连接、网络连接和磁盘文件等),必须显示回收,这时可以放在finally块里回收。除非在try块或者catch块中执行了退出虚拟机的方法,否则异常处理的finally块总会被执行。
当Java程序执行try块、catch块时遇到了return或throw语句,这两个语句都会导致方法立即结束,但是系统执行这两个语句并不会结束该方法,而是去寻找该异常处理流程中是否包含finally块,如果没有finally块,程序立即执行return或throw语句,方法终止;如果有finally块,系统立即开始执行finally块--只有当finally块执行完成后,系统才会再次调回来执行try块、catch块里的return或throw语句;如果finally块使用了导致方法结束的语句,系统不会跳回去,会直接结束。
6.Java7增强了try语句的功能:允许在try关键字后紧跟一对圆括号,圆括号可以声明初始化一个或多个资源,此处的资源指的是那些必须在程序结束时显示关闭的资源。这些资源必须实现AutoCloseable或Closeable接口,实现其close()方法。(相当于包含了隐式的finally块)
7.自定义异常:继承Exception基类,提供两个构造器:一个是无参构造器;一个是带一个字符串参数的构造器,这个字符串将作为该异常对象的描述信息。
8.异常转译:程序先捕获原始异常,然后抛出一个新的业务异常,新的业务异常中包含了对用户的提示信息。
9.异常处理规则(性能优化、结构优化角度):
a.使程序代码混乱最小化;
b.捕获并保留诊断信息;
c.通知合适的人员;
d.采用合适的方法结束异常活动;
10.对异常采取适当措施:
a.处理异常
b.重新抛出异常
c.在合适的层处理异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值