throw new RuntimeException(e)与e.printStackTrace( )有什么区别?
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/25 08:42:52
throw new RuntimeException(e)与e.printStackTrace( )有什么区别?
throw new RuntimeException(e)与e.printStackTrace( )有什么区别?
throw new RuntimeException(e)与e.printStackTrace( )有什么区别?
e.printStackTrace( )是打印异常栈信息,而throw new RuntimeException(e)是把异常包在一个运行时异常中抛出.
我们常看见这种写法
try{
.
}catch(Exception e){
e.printStackTrace( );
throw new RuntimeException(e);
}
这是处理没法进一步处理的异常的一般做法.try块中出现了一个异常,它被catch住了,我们首先要在标准输出上打印出异常但是如果没有throw这句,这个错误就静悄悄地被catch块吃掉了,程序会继续运行.可这个时候很可能你的程序的状态已经不对了,继续下去也没有什么意义,所以应该继续抛出这个异常.你当然可以写throw e;,但是这个e是一般的异常,如果这样抛出的话,你得在这个函数头上用throws来声明,比如:
public void abc() throws Exception
然后调用这个函数的函数也还得这么干,所以一般的处理是把e包装成运行时异常:new RuntimeException(e),这样就不需要在函数头声明了.
但这只是一般的处理方法,在实际程序中不可不顾实际情况和需求生搬硬套.
throw new
throw new NotImplementedException是什么意思
throw new NotImplementedException是什么意思
throw new light是什么意思
to throw new light on human
java中“throw new Exception()” 和“new Exception()”区别
throw
throw
(THROW
throw
throw
throw
throw
throw
throw new IllegalArgumentException在异常中这是什么意思?
throw new InputMismatchException();的含义?并且怎么改正
throw new RuntimeException(e)与e.printStackTrace( )有什么区别?
On New Year's Eve,people in Italy throw out all the old things,