【发布时间】:2013-03-06 14:22:43
【问题描述】:
由于这是一个关于 try/finally 子句行为的学术问题,因此我尝试使用一个非常通用的示例。像这样嵌套 try/finally 子句有什么危险吗?
openDatabaseConnection();
try {
// Methods unrelated to cursor
// ...
String cursor_id = openCursor();
try {
useCursor(cursor_id);
} finally {
closeCursor(cursor_id);
}
// Methods unrelated to cursor
// ...
} catch (Exception e) {
genericLogError();
} finally {
closeDatabaseConnection();
}
具体来说,我很想知道closeCursor() 是否保证在closeDatabaseConnection() 之前被调用。是否有理由嵌套一个 finally 子句之类的应该被视为不好的做法?
【问题讨论】:
-
在同一个 finally 方法中调用两者
-
@divyabharathi:请解释你为什么推荐这个。
标签: java nested try-finally