Как инициализировать static final переменную в try catch

363
03 января 2018, 18:56

Добрый день. Мне надо инициализировать static final переменную, делаю я это в статическом блоке инициализации. Фишка в том, что сама инициализация переменной может выкинуть исключительную ситуацию, я инициализацию обернул в try{} catch, но тут мне компилятор говорит, что переменная может быть не инициализирована, оно и правильно, но как мне тогда инициализировать эту переменную?! Вот как пример код:

public class Example {
  public static final Connection connection;
  static {
    try {
      connection = DriverManager.getConnection("jdbc:sqlite:" + PATH); //Вот эта строка может выкинуть исключительную ситуацию
    } catch (Exception ignored) {}
  }
}
Answer 1
public class Example {
    public static final Connection connection;
    static {
        Connection c = null;
        try {
            c = DriverManager.getConnection("jdbc:sqlite:" + PATH);
        }
        catch (Exception exc) {}
        finally {
            connection = c;
        }
    }
}
READ ALSO
Не могу понять описание rinex obs файла

Не могу понять описание rinex obs файла

Здравствуйте, подскажите, пожалуйста, пытаюсь распарсить файл Rinex obs (Файл данных наблюдений)

293
Чем iterator отличается от цикла for в Java?

Чем iterator отличается от цикла for в Java?

Объясните, пожалуйста, в каких случаях итератор лучше цикла? Еще мне интересно как в итераторе я могу задать сортировку элементов массива,...

383
Свойство “overflow”

Свойство “overflow”

Я уже гуглил на счёт этого свойства, я вроде-бы понимаю смысл его действия, но не всегдаОбъясните: что оно конкретно делает з float элементами,...

311