Я делаю это, когда исключение не может быть эффективно обработано, оно не должно влиять на нормальную работу приложения и / или может представлять собой переходное состояние, которое известно, но имеет небольшое общее влияние.
Простой пример - регистрация. Вам не нужно взрывать приложение только потому, что некоторая информация о регистрации не будет сохранена в вашем бэк-магазине.
Другой пример может быть, где у вас есть альтернативные способы обработки ситуаций, например:
private Boolean SomeMethod() {
Boolean isSuccessful = false;
try {
// call API function that throws one of several exceptions on failure.
isSuccessful = true;
} catch(Exception) { }
return isSuccessful;
}
В приведенном выше примере у вас может не быть позиции возврата, но вы не хотите, чтобы она фильтровалась. Это нормально для методов SHORT, где возвращаемое значение устанавливается только в успешное состояние как последний шаг в блоке try.
К сожалению, существует много вызовов, которые генерируют исключения, а не просто возвращают код ошибки или ложное условие в результате. Я также видел вызовы, которые генерируют больше исключений, чем то, что предполагает их документация, и это одна из причин, по которой я ставлю ловушку вокруг них.