Вот упрощенный вариант того, как я использую Try-Catch
class Database {
public void addRow() throws SQLException {
try { /* Add row */ }
catch(SQLException e) {
log.error(e);
throw e;
}
}
}
class Context1 {
public void doSomething(Database db) throws SQLException {
db.addRow(); //If throws exception then main exception handler executes sendMessage("failed");
sendMessage("success");
}
}
class Context2 {
public void doSomething(Database db) {
try { db.addRow(); }
catch (SQLException ignored) {}
}
}
Мне хотелось бы исключить перевыбрасывания исключений, дабы избежать пустые catch блоки во второй ситуации, когда уведомлять нигде, кроме консоли не нужно, но тогда становится невозможным обработка первой ситуации, когда необходимо уведомить пользователя о невыполненной операции.
Как быть в такой ситуации?