Продовжує вражати мене тим, що в цей день і вік продукти, які вже багато років користуються своїм поясом, побудовані командами професіоналів, і донині - не надають корисних повідомлень про помилки користувачеві. У деяких випадках додавання лише невеликої кількості додаткової інформації може врятувати користувачеві години неприємностей.
Програма, яка генерує помилку, генерує її з причини. У нього є все, що потрібно, щоб якомога більше повідомити користувача, чому щось не вдалося. І все ж здається, що надання інформації для допомоги користувачеві є невисоким пріоритетом. Я думаю, що це величезна невдача.
Один із прикладів - із SQL Server. Якщо ви спробуєте відновити використану базу даних, вона цілком правильно не дозволить вам. SQL Server знає, які процеси та програми мають доступ до нього. Чому він не може включати інформацію про процес (и), які використовують базу даних? Я знаю, що не кожен передає Applicatio_Name
атрибут у своїй рядку підключення, але навіть підказка про цю машину може бути корисною.
Ще один кандидат, також SQL Server (і mySQL) - це прекрасне string or binary data would be truncated
повідомлення про помилку та його еквіваленти. Багато часу, просте ознайомлення з створеним оператором SQL, і в таблиці показано, який стовпець є винуватцем. Це не завжди так, і якщо двигун бази даних виявив помилку, чому він не може заощадити нас на той час і просто каже нам, в якій проклятій колонці це було? На цьому прикладі ви можете стверджувати, що може бути хит вистави для його перевірки і що це заважатиме письменнику. Добре, я куплю це. Як наслідок, коли двигун бази даних знає, що є помилка, він робить швидке порівняння після факту між значеннями, які збиралися зберігатись, порівняно з довжинами стовпців. Потім покажіть це користувачеві.
Винні у цьому жахливі адаптери настільних таблиць ASP.NET. Запити можна виконати, і можна надати повідомлення про помилку, в якому сказано, що десь порушено обмеження. Дякую за це. Час порівнювати мою модель даних з базою даних, оскільки розробники лінуються вказувати навіть номер рядка або приклад даних. (Для запису я ніколи не використовував цей метод доступу до даних за вибором , це просто проект, який я успадкував!).
Щоразу, коли я кидаю виключення зі свого коду C # або C ++, я надаю користувачеві все, що я маю під рукою. Прийнято рішення кинути його, тому чим більше інформації я можу дати, тим краще. Чому моя функція кинула виняток? Що було передано, і що очікувалося? Мені потрібно трохи більше часу, щоб помістити щось змістовне в текст повідомлення про виключення. Чорт, це не допомагає мені, поки я розвиваюсь, бо знаю, що мій код кидає значущі речі.
Можна стверджувати, що складні повідомлення про виключення не повинні відображатися користувачеві. Хоча я не погоджуюся з цим, це аргумент, який легко можна оскаржити, маючи різний рівень багатослівності, залежно від вашої конструкції. Вже тоді користувачі ASP.NET і SQL Server не є вашими типовими користувачами, і вважають за краще щось повне багатослівної та смачної інформації, оскільки вони можуть швидше знайти свої проблеми.
Чому розробники вважають, що в цей день і вік нормально надавати мінімальну кількість інформації, коли виникає помилка?
Це 2011 хлопці, приходьте на .