主题:[原创]Java重新抛出异常
有时希望把刚捕获的异常重新抛出,尤其是在使用Exception捕获所有异常的时候。既然已经得到了对当前异常的引用,可以直接把它重新抛出:
catch(Exception e) {
System.out.prinln("An exception was thrown");
throw e;
}
重抛异常会把异常抛给上一级环境中的异常处理程序,同一个try块的后续catch子句将被忽悠。此外,异常对象的所有信息都得保持一致,所以高一级环境中捕获此异常的处理程序可以从这个异常对象中得到了所有信息。
如果只是把当前异常对象重新抛出,那么printStackTrack()方法显示的将是原来异常抛出点的调用栈信息,而并非重新抛出点的信息。要想更新这个信息,可以调用fillInStackTrack()方法,这将返回一个Throwable对象,它是通过把当前调用栈信息填入原来那个异常对象而建立的。
欢迎咨询重庆市甲骨文学习中心 联系电话023-67863505 联系QQ: 2223439120(何老师) 1049714085(周老师) 网站:http://www.c-base.com.cn/
catch(Exception e) {
System.out.prinln("An exception was thrown");
throw e;
}
重抛异常会把异常抛给上一级环境中的异常处理程序,同一个try块的后续catch子句将被忽悠。此外,异常对象的所有信息都得保持一致,所以高一级环境中捕获此异常的处理程序可以从这个异常对象中得到了所有信息。
如果只是把当前异常对象重新抛出,那么printStackTrack()方法显示的将是原来异常抛出点的调用栈信息,而并非重新抛出点的信息。要想更新这个信息,可以调用fillInStackTrack()方法,这将返回一个Throwable对象,它是通过把当前调用栈信息填入原来那个异常对象而建立的。
欢迎咨询重庆市甲骨文学习中心 联系电话023-67863505 联系QQ: 2223439120(何老师) 1049714085(周老师) 网站:http://www.c-base.com.cn/