【发布时间】:2013-02-23 18:02:26
【问题描述】:
我有一个简单的问题,一段简单的代码,一些基本的try-finally 块:
try {
// Some code which can throw an Exception
} finally {
// Some code which also can throw an Exception
}
我的主要问题是:有什么方法可以发现finally 块中抛出的异常而不使用catch 和一些局部变量在块之间传递信息?
我在少数情况下这很有用,我不想添加一些丑陋的不必要的catch 块来设置一些变量和throw Exception。第一个例子是,如果我在一些 Spring 或容器管理的事务方法中,并且在 try 块 Exception 中发生。在这种情况下,我需要在 finally 中创建新事务以使用数据库。第二个例子是我不希望我原来的Exception 被finally 块中抛出的Exception 掩盖,但如果没有Exception 我会从finally 抛出它(如果有的话) .
我知道这一切都可以用catch 来完成,但还有其他方法吗,Java 中的一些元数据或其他任何方法?此外,如果我们可以假设这将在一个Thread 中执行,那么它可能会有所帮助,所以也许有一些方法可以发现当前Thread 的异常?
【问题讨论】:
标签: java try-finally