温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java的异常处理是什么

发布时间:2020-06-29 14:53:00 来源:亿速云 阅读:151 作者:元一 栏目:编程语言

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的异常处理是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI