首页 >Java >Java基础 >什么是java异常处理

什么是java异常处理

angryTom
angryTom原创
2019-11-12 09:19:583718浏览

什么是java异常处理

什么是java异常处理

1、异常

程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。(推荐教程:java教程

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、关键字:throws,throw,try,catch,finally 分别代表什么意义?

throws 是获取异常

throw 是抛出异常

try 是将会发生异常的语句括起来,从而进行异常的处理,也可以在 try 块中抛出新的异常

catch 是如果有异常就会执行他里面的语句

finally 不论是否有异常都会进行执行的语句

以上是什么是java异常处理的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn