Исторически я всегда писал свой код обработки исключений так:
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. Я не уверен, давал ли мой старый стиль какое-либо дополнительное значение, а второй, безусловно, более читабелен и краткий. Литература , как правило, всегда соответствует первому стилю.
РЕДАКТИРОВАТЬ - предположим, что я рад любым исключениям, которые выдает openCursor при инициализации курсора, чтобы он не попадал в этот блок кода, моя единственная задача в этом примере - закрыть курсор, если он назначено и открыто . Также предположим, что я тестирую на нулевые значения и т. Д. И т. Д. Ядда ... Ядда ... (Я изменил пример, чтобы отразить это, это не было предметом моего вопроса, поэтому я не не включайте его в первую версию)