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