Недавно я получил отзыв от коллеги о моем исходном коде веб-сайта. Он говорит, что это плохая практика - не изящно обрабатывать то, что визуальный интерфейс не позволяет делать.
Поскольку это не очень понятно, вот пример.
Допустим, посетитель может что-то прокомментировать.
nvarchar (500)
.
ограничена 500. Но, конечно, ничего запрещает более опытным пользователям отключать ограничение длины и вводить 501 символ.
(Другие примеры: отправка параметра, которого даже нет в
. Но там - это изящная ошибка, когда пользователь попросили ввести число, и вместо этого она вводит не число, так как события нажатия клавиш управляются с помощью JavaScript, а JavaScript может быть отключен)
Если посетитель сделает это, произойдет сбой на уровне контрактов кода. Запрос AJAX завершится ошибкой из-за непредвиденной ошибки (или при отправке страницы возникнет непредвиденная ошибка). Во всех случаях посетитель увидит, что что-то случилось, но не получит изящного сообщения, указывающего на то, что длина отправленного комментария слишком велика.
Почему это плохая практика? Зачем мне нужно разрабатывать четкие и явные сообщения об ошибках для случаев, когда посетитель, который правильно использует веб-сайт, никогда не увидит?
Примечание: я понимаю, что отображать подробную ошибку .NET Framework и трассировку стека, когда что-то вот так бывает. Если я это сделаю, это серьезная проблема безопасности. Но в моем случае есть просто ответ AJAX с чем-то очень общим или перенаправление на общую страницу с извинениями за ошибку.