首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >长Java 'try‘块中的哪一行是抛出异常?

长Java 'try‘块中的哪一行是抛出异常?
EN

Stack Overflow用户
提问于 2012-05-24 16:05:16
回答 6查看 2.2K关注 0票数 4

有没有办法找出try块中的哪一行正在抛出异常?

我正在使用Eclipse中的Java,它看起来像

代码语言:javascript
复制
try {

  //Lots of code. Seriously. Lots.

} catch (Exception e){
  throw new OtherException();
}

我在try块中碰到了一个异常(然后被捕获)。我怎么才能弄清楚它是从哪里扔出来的?

问题

  • 堆栈跟踪仅显示OtherException的catch块中的行。
  • 删除try/catch块并不简单,因为有许多声明为引发的异常,为了代码编译,需要捕获这些异常。

我觉得应该有一个简单的方法来做这件事。

注意:这段代码不是我写的;-)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-05-24 16:07:17

cause参数用于Exceptions (请看这里 )

代码语言:javascript
复制
try {

  //Lots of code. Seriously. Lots.

} catch (Exception e){
  throw new OtherException(e); // Trick is here
}

这样,您也可以在堆栈跟踪中获得cause异常。

票数 14
EN

Stack Overflow用户

发布于 2012-05-24 16:06:37

在Eclipse中,可以设置由异常触发的断点。见添加Java异常断点

对于这种特殊情况,您需要确保勾选“挂起捕获的异常”。

一旦Eclipse进入调试器,您将拥有许多可用的工具。您将看到调用堆栈,将能够检查变量等。

票数 4
EN

Stack Overflow用户

发布于 2012-05-24 16:09:37

您可以使用throw new OtherException(e);。正如文档解释的那样,此构造函数构造一个具有指定原因的新异常。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10741192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档