Я разрабатываю REST API с использованием контроллеров MVC. Я хотел бы обработать все ошибки привязки модели и сообщить о них клиенту в удобной для пользователя форме. В моих пользовательских подшивках моделей я уже выбрасываю специальное исключение, которое обработчик исключений считает безопасным и показывает клиенту.
Однако, когда средство связывания модели по умолчанию видит недопустимое значение (скажем, asdf
для int
), оно либо полностью игнорирует его (если параметр не требуется), либо выдает простое значение ArgumentException
(если параметр обязателен). Можно ли надежно обработать оба случая и получить имя параметра и связанную с ним ошибку, не переписывая весь переплет вручную?
Я бы не стал показывать ArgumentException
как есть, потому что он показывает имена методов и пространств имен, о которых клиент не должен заботиться. Я бы также предпочел не анализировать сообщение ArgumentException
, если его можно избежать, и это не решило бы проблему с неверными значениями для необязательных параметров, которые полностью игнорируются.