Possible Duplicate:
Is it possible to detect if an exception occurred before I entered a finally block?
我有一个工作流方法,它会在发生错误时抛出异常。我想将报告指标添加到我的工作流程中。在下面的 finally block 中,有什么方法可以判断 try/catch block 中的方法之一是否引发了异常?
我可以添加自己的 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 标志:
boolean success = false;
try {
reportStartWorkflow();
doThis();
doThat();
workHarder();
success = true;
} finally {
if (!success) System.out.println("No success");
}
关于java - 在 finally block 中,我可以判断是否抛出了异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10736238/