1

我有以下代码:

try
      {
          glogger.debug("Calling getReportData (BudgetInBriefDAO)");
          lHashData = objBudgetInBriefDAO.getReportData(lStrFinYrId, lStrLangId, lStrContextPath, lStrFinYrDesc);
          glogger.debug("Returning from getReportData (BudgetInBriefDAO)");
      }
//      catch( InvocationTargetException ie )
//      {
//          glogger.error("InvocationTargetException !!!");
//          glogger.error("InvocationTargetException in calling BudgetInBriefBean -> getReportData");
//          glogger.error("Target Exception is : " + ie.getTargetException());
//          glogger.error("Cause is : " + ie.getCause());
//          ie.printStackTrace();
//      }
      catch( Exception e )
      {
          glogger.error("Exception !!!");
          glogger.error( "Error in calling BudgetInBriefBean -> getReportData. Error is :- " + e );
          e.printStackTrace();
      }

我收到以下错误:

致命:AJPRequestHandler-ApplicationServerThread-25 com.tcs.sgv.common.util.GenericEJBObject - InvocationTargetException:java.lang.reflect.InvocationTargetException - 2012 年 2 月 14 日 12:36:00,155 - 5210474 毫秒

它没有打印堆栈跟踪。我怎么知道异常的原因?

我有未注释的代码并且仍然没有打印堆栈跟踪。

之间,我的 BudgetInBriefDAO 实现 (BudgetInBriefDAOImpl) 包含 4 个类。

BudgetInBriefDAOImpl & 3 个其他线程类

我已经成功地反编译了所有类文件而没有损坏。

请帮助找出异常的实际原因。

提前致谢。

4

1 回答 1

2

尝试反编译com.tcs.sgv.common.util.GenericEJBObject;也许它吞下了例外。

或者,以调试模式启动应用程序并在InvocationTargetException.

注意:这可能会变得不切实际,因为在您到达要调试的地方之前很久,其他代码就会导致大量此类异常。如果发生这种情况,请禁用这些断点,在第一个断点处添加一个新断点,glogger.debug并在遇到此断点时再次启用异常的断点。

当您的调试器中有堆栈跟踪时,请在执行任何其他操作之前在引发异常的位置设置断点。

glogger.fatal最后一个选项:在(或记录异常的地方)设置断点。

于 2012-02-14T08:46:49.530 回答