捕获异常:通常在运行之前java不报错,但是运行后可能会出现某些未知的错误,但是还不想直接抛出到上一级,那么就需要通过”try{}catch“的形式进行异常捕获,之后根据不同的异常情况来进行相应的处理。
传递异常:通常用在多级方法调用上,最终想将异常返回到最上层进行处理的时候,那么就把异常向上抛出,知道调用的方法处,进行异常捕获。
备注:这两种情况也没法说那种就好,只能是根据实际情况来进行相应的处理。
实现原理:实际上就是先不分具体的异常,直接捕获所有异常的父类Exception,之后在进行实例化异常判断,进行结果输出。举例:
try{
//填写需要捕获异常信息的代码
} catch(Exception e) {//捕获异常信息
if(e instanceof NumberFormatException) {//判断是不是数据转换异常
Systemoutprintln("NumberFormatException");//输出结果
}
if(e instanceof NullPointerException) {//判断是不是空指针异常
Systemoutprintln("NullPointerException");//输出结果
}
}
备注:这个instanceof 实例化可以有效的判断类型是否匹配,而不抛出异常,增加了代码的可复写性(也就是根据异常自定义输出信息)。
try catch是一种异常处理机制,但是有两点需要注意。
1只有在try块内部的代码所抛出的异常才会被捕获,如果是try块范围外的代码,就不会捕捉异常。
2catch需要指定异常类型。只能够捕获指定的异常类型。如果发生崩溃的异常并没有列在catch中,那么也不会捕获该异常。最终导致程序崩溃。
try
{
//要捕获的代码
}
catch (Exception ex)//
{
throw;//这个是抛出,意思是如果你暂时不处理可以抛到调用他的地方去,但是调用的地方一定要捕获异常
//这里的ex表示 系统捕获到的错误提示 }
finally
{
//这里的代码一定会执行,不管你前面做了什么超作
}
以上就是关于java中什么时候该捕获异常 什么时候该传递异常全部的内容,包括:java中什么时候该捕获异常 什么时候该传递异常、java编程用catch(Exception e)捕获异常,在catch中用instanceof对不同的异常分别处理、为什么使用Try,Catch捕获异常,程序依然Crash等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)