Возможный дубликат:
Можно ли обнаружить, произошло ли исключение, прежде чем я ввел блок finally?
У меня есть метод рабочего процесса, который делает что-то, и выдает исключение, если произошла ошибка. Я хочу добавить показатели отчетности в свой рабочий процесс. В нижнем блоке 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();
}
}