java的异常处理是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
什么是java异常处理
1、异常
异常处理,英文名为exceptional handling, 是代替日渐衰落的error code方法的新法,提供error code 所未能具体的优势。异常处理分离了接收和处理错误代码。这个功能理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解。 异常处理(又称为错误处理)功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。
2、异常处理机制
Java提供了更加优秀的解决办法:异常处理机制。
异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。
Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手动抛出的,只要在Java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。
Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内建了一些常用的异常类,我们也可以自定义异常。
3、异常的处理:
异常的处理分为消极的处理(自己处理不了,就往调用它的地方上抛throws,异常没有解决,只是抛出)和积极处理(异常捕获,捕捉异常通过try-catch语句或者try-catch-finally语句实现)
a) 消极的处理:
语法:
public void m1() throws 异常类名1,异常类名2{}
特点:相当于推卸责任,最终问题依然无法得到解决。
允许编译通过。
当上抛的异常为非运行(已检查)时异常时,调用此方法的调用者必须处理。
当上抛的异常为运行(未检查)时异常时,可以处理可以不处理。
b) 积极的处理:(异常捕获)
将异常直接捕获,并且做出处理
语法:
try{ //异常代码 }catch(异常类名 引用名){ //当异常产生执行的代码 }
try 后的catch代码块 只能匹配成功一个
catch后声明的异常为父类时,它能够捕捉的异常为它本身+所有子类异常(多态的体现)
注意:catch代码块捕获异常时,子类异常必须定义在父类异常前面,否则会编译出错
finally代码块:一定会执行此代码块中的代码,常用来关闭资源,
try{ }catch(){ }finally{ //无论是否产生异常,一定会去执行的代码 }
注意:finally代码块中不要定义return语句
4、异常的特性:
应用程序遇到异常情况(如被零除情况或内存不足警告)时,就会产生异常。
发生异常时,控制流立即跳转到关联的异常处理程序(如果存在)。
如果给定异常没有异常处理程序,则程序将停止执行,并显示一条错误信息。
可能导致异常的操作通过 try 关键字来执行。
异常处理程序是在异常发生时执行的代码块。在 C# 中,catch 关键字用于定义异常处理程序。
程序可以使用 throw 关键字显式地引发异常。
异常对象包含有关错误的详细信息,其中包括调用堆栈的状态以及有关错误的文本说明。
即使引发了异常,finally 块中的代码也会执行,从而使程序可以释放资源。
5、关键字:throws,throw,try,catch,finally 分别代表什么意义?
throws 是获取异常
throw 是抛出异常
try 是将会发生异常的语句括起来,从而进行异常的处理,也可以在 try 块中抛出新的异常
catch 是如果有异常就会执行他里面的语句
finally 不论是否有异常都会进行执行的语句
关于java的异常处理是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。