java – 在finally块中,我可以告诉是否抛出了异常

Possible Duplicate:
07000

我有一个工作流方法做事情,如果发生错误,抛出异常。我想为我的工作流程添加报表指标。在下面的finally块中,有没有什么方法来告诉如果try / catch块中的一个方法抛出异常?

我可以添加自己的catch / throw代码,但更喜欢一个更清洁的解决方案,因为这是一个模式,我在我的项目中重用。

@Override
public void workflowExecutor() throws Exception {
  try {
      reportStartWorkflow();
      doThis();
      doThat();
      workHarder();
  } finally {
      /**
       * Am I here because my workflow finished normally, or because a workflow method
       * threw an exception?
       */
      reportEndWorkflow(); 
  }
}
最佳答案
Java没有自动方式。你可以使用布尔标志:

boolean success = false;
try {
  reportStartWorkflow();
  doThis();
  doThat();
  workHarder();
  success = true;
} finally {
  if (!success) System.out.println("No success");
}

转载注明原文:java – 在finally块中,我可以告诉是否抛出了异常 - 代码日志