你怎么能弄清楚抛出异常的地方?

时间:2013-03-27 15:44:14

标签: java eclipse debugging exception

假设你有这样的代码:

Random rnd=new Random();
try {

  if(rnd.nextInt(1000)==0) {
     throw new Exception();
  }
  // repeat above code N times, N being big.

}catch(Exception e) {
  LOGGER.error("caught:", e);
} 

现在我在catch子句中添加一个断点。如果它得到警告,我怎么能找出抛出异常的行号?

3 个答案:

答案 0 :(得分:1)

堆栈跟踪包含此信息。

ideone

堆栈跟踪:

Exception in thread "main" java.lang.Exception
    at Main.main(Main.java:8)

答案 1 :(得分:0)

添加例外断点:

在异常对话框中,按“J!”按钮,然后赶上异常。

以下是截图:

http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fviews%2Fbreakpoints%2Fref-addexception_viewaction.htm

答案 2 :(得分:-2)

您已经知道了行号,它是throw new Exception()中的行;)

如果你想知道你循环了多少次,那么你可以在你的构造函数中包含循环计数器用于异常,然后用e.getMessage()