Я знаю
throw new Exception();
имеет довольно большие накладные расходы, так как он создает полный стекTrace и т.д.
Есть ли
throw new Throwable();
представляет ту же проблему? Наследуется ли это поведение или бросает ли Throwable меньшие (o нет) накладные расходы?
ИЗМЕНИТЬ
С точки зрения аналитик пользователь, вставляющий неправильный пароль, является исключением из обычного порядка выполнения программы. Поэтому, если у меня есть:
public Session newSession() {
validate_user_and_password();
}
выброс исключения UserNotValidException будет корректным с точки зрения аналитиков.
Возврат null
или 0
просто звучит некорректно, если ваш код имеет довольно хорошую абстракцию. Я просто хотел знать, могу ли я реализовать это в коде, или если мне придется просто оставить его в теории.
Там есть хорошая разница между исключением из точки программирования и точки зрения и исключение аналитической точки зрения.
Примечание. Я дал очень простой и глупый пример, это не совсем мое дело.
Примечание 2: Я знаю, что возвращение null
было бы обычным делом, но я должен иметь правильно абстрагированный и OO-код, и, лично, я не вижу в этом никакого вреда.