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