Исторически я всегда писал свой код обработки исключений следующим образом:
    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. Я не уверен, что мой старый стиль выдавал какое-либо дополнительное значение, а второе, безусловно, более читаемо и кратким. В литературе обычно всегда идет с первым стилем.
EDIT - предположим, что я доволен любыми исключениями, вызванными openCursor при инициализации курсора, который не попадает в этот блок кода, моя единственная проблема для этого примера - это закрыть курсор, если он назначен и открыт. Также предположим, что я тестирую нули и т.д. И т.д. Yadda... yadda... (Я изменил пример, чтобы отразить это, это не было в центре моего вопроса, поэтому я не включил его в первую версию)