使用try...catch的处理异常机制
发布日期:2021-06-29 17:16:32 浏览次数:2 分类:技术文章

本文共 1356 字,大约阅读时间需要 4 分钟。

使用try...catch的处理异常机制
Java的异常处理可以让程序具有更好的容错性,程序更加健壮。当程序运行出现意外情形时,系统会自动生成一个Exception对象来通知程序。
实现原理:如果try语句块中的业务逻辑代码在运行时出现了异常,系统自动生成一个异常对象,该异常对象被提交给Java运行时环境,这个过程被称为抛出异常。当Java运行时环境收到异常对象时,会寻找处理该异常对象的catch块,如果找到合适的catch块并把该异常对象交给catch块处理,这个过程被称为捕获异常;如果Java运行时环境找不到捕获异常的catch块,则运行时环境终止,Java程序也将退出。
try语句块后可以有多个catch块,这是为了针对不同异常类提供不同的异常处理方式。当系统发送不同异常情况时,系统会生成不同的异常对象,Java运行时环境就会根据该异常对象所属的异常类来决定使用那个一个catch语句块进行处理该异常。当Java运行时环境接受到异常对象后,会依次判断该异常对象是否是catch块后异常类或其子类的实例,如果是,Java运行时环境将调用该catch块来处理该异常;否则再次拿该异常对象和下一个catch块里的异常类进行比较。
Java提供了丰富的异常类,下面显示了Java常见的异常类直接的继承关系图:

Java把所有非正常情况分为两种:异常(Exception)和错误(Error),他们都继承Throwable父类。
Error错误:一般是指虚拟机相关的问题,如系统崩溃,虚拟机出错、动态链接失败等,这种错误无法恢复或不可能捕获,将导致引用程序中断。通常应用程序无法处理这些错误。
注意:对程序进行异常捕获时,一定是先捕获小的异常,再捕获大的异常。

访问异常信息
如果程序需要在catch代码块中访问异常对象的相关信息,可以通过调用catch语句块中的异常形参的方法来获取异常信息,当Java运行时决定调用某个catch语句块来处理该异常对象时,会将该异常对象赋给catch块后的异常参数,程序就可以通过该参数来获得异常的相关信息。
异常对象常用的几个方法:
(1)getMessage():返回该异常的详细描述字符串。
(2)printStackTrace():将该异常的跟踪栈信息输出到标准错误输出。
(3)printStackTrace(PrintStream s):将该异常信息的跟踪栈信息输出到指定输出流。
(4)getStackTrace():返回该异常的跟踪栈信息。

使用finally回收资源
Java异常处理的完整语法结构是
try {


//业务代码(可能报异常的代码)
} catch (NullPointerException e) {

// 异常处理块1
}catch(Exception e2){

//异常处理块2
}finally{

//资源回收块
}
finally语句块主要作用是回收资源,比如:关闭数据库连接,网络连接,磁盘文件,输入输出流等等。这些资源必须显示的回收,Java的垃圾回收机制不会回收任何物理资源,它只回收堆内存中对象所占用的内存。
无论try语句块中的代码是否出现异常,也不管catch块中的代码是否执行,finally中的代码块都会被执行。

转载地址:https://blog.csdn.net/lijunchao1/article/details/53397479 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:从JVM指令层面看try-catch-finally返回值问题
下一篇:jquery实现iframe方式的dialog窗口,加关闭并刷新父窗口功能

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月07日 07时33分53秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章