Природа исключений заключается в том, что они должны явно игнорироваться.Предположим, у вас есть эта функция:
bool authenticate ( String username, String password )
{
if ( invalid_password(password) ) {
return (false);
}
// ... perform authentication ...
}
Теперь рассмотрим, что это часть какого-то сервера, и что сервер работает в высокопривилегированном контексте .Если вызывающий код (тот, который выполняет авторизацию) имеет некоторую ошибку в своей логике, он может непреднамеренно позволить пользователям выполнять действия, которые им обычно не разрешены.
Я бы вместо этого написал следующую функцию:
void authenticate ( String username, String password )
{
if ( invalid_password(password) ) {
throw new LoginFailed();
}
// ... perform authentication ...
}
Обратите внимание, что это чисто защитный подход к программированию, и это мое предпочтение в этом контексте.Таким образом, ошибка при входе в систему, скорее всего, не позволит продолжить выполнение операции.