У меня есть операция/метод, который выполняет вставку в базу данных. Требуется несколько полей и по разным причинам, что операция может завершиться неудачно, потому что один или несколько входов не были уникальными или потому что они конфликтуют с некоторыми внутренними записями, которые должны быть уникальными.Должен ли вход пользователя вызывать проверенные исключения?
saveUserInfo(primaryToken,secondaryToken,userid);
Будет ли иметь смысл для меня бросить проверенное исключение при каждом нарушении?
Мое мышление было использовать следующее:
saveUserInfo(String primaryToken, String secondaryToken, String id)
throws PrimaryTokenTakenException,SecondaryTokenTakenException
принуждая любого разработчика, который вызывает этот метод борьбы с ним путем маршрутизации веб-пользователя на страницу с просьбой о новой лексемы.
оппозиции Противники этого подхода указывают на то, что мы, команда разработчиков, знают о каждом из случаев ошибок, которые может вызвать этот сбой, и вместо этого должен возвращать код ошибки и использовать, чтобы обрабатывать каждый случай ,
int errorCode = saveUserInfo(primaryToken,secondaryToken,userid);
Я не вижу очевидных недостатков проверенного подхода. Вероятно, эти ошибки случаются, и вы абсолютно должны обращаться к ним в любом месте saveUserInfo(). Кажется, именно в этой ситуации были созданы исключения.
Исключения, которые ожидаются, не очень исключительны, не так ли? –
@JarrodRoberson Я возьму ваш downvote и очень конструктивную статью как исключение во время выполнения. –