November 23, 2021

Обработка Exception в Java ч 2. Семантика обработки исключений.

Есть четыре основных способа обработки:

  1. Проигнорировать
  2. Перехватить и обработать
  3. Перехватить и кинуть старое
  4. Перехватить и кинуть новое

Если по первым двум способам в принципе все понятно, то 3 и 4 рассмотрим подробнее.

Перехватить и кинуть старое

Пример кода

try {
     //код вызвавший исключение
} finally {
  //выполняем необходимый код
}  

Еще пример

try {
     //код вызвавший исключение
} catch (WiFiException e) {
    //выполняем к примеру логировние
    throw e;
}

В блоке catch может находиться например логирование.

Перехватить и кинуть новое

Собираем все исключения в одном методе, и отправляем с этого метода уже исключение более высокого уровня.

public Charset getCharForUser(String name) throws MyException {
   String nameFile = name + ".txt";
   try (InputStream is = new FileInputStream(name)) {
       String charSet = new BufferedReader(new InputStreamReader(is)).readLine();
       //Эта конструкция может выдать 
       //пять различных исключений*/
       return Charset.forName(charSet);
    } catch (Exception e) {
        throw new MyException("Some error during load charset for user = " + name, e);
    }
}

<-— Часть 1

Содержание

Часть 3 --->