Из различных руководств я узнал, что «если можно обоснованно ожидать, что клиент восстановится после исключения, сделайте его проверенным исключением. Если клиент не может ничего сделать для восстановления после исключения, сделайте его непроверяемым исключением».
Мне очень хочется увидеть эффективность предыдущего утверждения на некоторых примерах кода.
Например.
Код: Выделить всё
try {
br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
Здесь проверяется исключение IOException. Итак, как мне восстановиться, когда возникнет это исключение? Здесь я исключаю задачи регистрации исключений и повторного создания исключений, поскольку они на самом деле не восстанавливаются, т. е. исправляют ситуацию. Итак, какую модификацию следует применить здесь для восстановления?
Если есть способ восстановиться, то такой же подход можно применить к следующему коду. :
Код: Выделить всё
try{
Integer.parseInt("ghg4");
}catch(NumberFormatException nfe){
}
Здесь NumberFormatException — это исключение времени выполнения/непроверяемое исключение. Итак, если есть способ восстановиться после него, то почему оно вообще объявляется как исключение времени выполнения?
Подробнее здесь:
https://stackoverflow.com/questions/994 ... -be-chosen