有没有办法找出try块中的哪一行正在抛出异常?
我正在使用Eclipse中的Java,它看起来像
try {
//Lots of code. Seriously. Lots.
} catch (Exception e){
throw new OtherException();
}我在try块中碰到了一个异常(然后被捕获)。我怎么才能弄清楚它是从哪里扔出来的?
问题
我觉得应该有一个简单的方法来做这件事。
注意:这段代码不是我写的;-)
发布于 2012-05-24 16:07:17
将cause参数用于Exceptions (请看这里 )
try {
//Lots of code. Seriously. Lots.
} catch (Exception e){
throw new OtherException(e); // Trick is here
}这样,您也可以在堆栈跟踪中获得cause异常。
发布于 2012-05-24 16:06:37
在Eclipse中,可以设置由异常触发的断点。见添加Java异常断点。
对于这种特殊情况,您需要确保勾选“挂起捕获的异常”。
一旦Eclipse进入调试器,您将拥有许多可用的工具。您将看到调用堆栈,将能够检查变量等。
发布于 2012-05-24 16:09:37
您可以使用throw new OtherException(e);。正如文档解释的那样,此构造函数构造一个具有指定原因的新异常。
https://stackoverflow.com/questions/10741192
复制相似问题