Исторически я всегда писал мой Exception код обработки, как это:Java Обработка исключений - Стиль
Cursor cursor = null;
try {
cursor = db.openCursor(null, null);
// do stuff
} finally {
if (cursor != null) cursor.close();
}
Но в последнее время, по причинам удобочитаемости и лени, я начал делать это:
Cursor cursor = db.openCursor(null, null);
try {
// do stuff
} finally {
cursor.close();
}
Неправильно ли мне назначить курсор (дескриптор jdbc, что угодно) из блока try-catch-finally?
Запрет JVM на самом деле взорвать назначение или между назначением и первой строкой того, что находится в блоке try. Я не уверен, что мой старый стиль выдавал дополнительное значение, а второй, безусловно, больше читабельными и лаконичными. Однако литература generally всегда идет с первым стилем.
EDIT - Предположит, я рад за какие-либо исключения брошенных openCursor, а инициализацию курсора не быть пойманным в этом блоке коды, моя единственная забота для этого примера подведения курсора, если он является назначен & открыт. Также предполагаю, что я тестирую нули и т. Д. И т. Д. Yadda ... yadda ... (Я изменил пример, чтобы отразить это, это не было в центре моего вопроса, поэтому я не включил его в первой версии)
++ для Mark, sylvarking, jdmichal & PSpeed. Я отметил, что PSpeed корректен только на основе комментариев о утечке курсоров, и в то время у него было меньше голосов, но в конечном итоге все ответы были полезными. StackOverflow - требуется несколько правильных ответов !? – Joel