November 23, 2021
Обработка Exception в Java ч 2. Семантика обработки исключений.
Есть четыре основных способа обработки:
Если по первым двум способам в принципе все понятно, то 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);
}
}