Теоретически конечный пользователь никогда не должен видеть внутренние ошибки. Но на практике теория и практика различаются. Поэтому вопрос заключается в том, чтобы показать конечного пользователя. Теперь, для совершенно нетехнического пользователя, вы хотите показать как можно меньше («нажмите здесь, чтобы отправить отчет об ошибке« что-то вроде этого », но для более продвинутых пользователей они захотят узнать, есть ли работайте, если это было известно какое-то время и т. д. Поэтому вы хотите включить примерно информацию о том, что не так.Внутренние маркеры ошибок
Классический способ сделать это - это утверждение с именем файла: номер строки или трассировка стека с тем же самым. Теперь это хорошо для разработчика, потому что он прямо указывает на проблему; однако у него есть некоторые существенные минусы для пользователя, в частности, что он очень критический (например, недружелюбный), а изменения кода изменяют сообщение об ошибке (для этой версии работает только для Google).
У меня есть программа, которую я планирую написать там, где хочу решить эти проблемы. То, что я хочу, - это способ придать уникальную идентичность каждому утверждению таким образом, что редактирование кода вокруг утверждения не изменит его. (Например, если я вырезаю/вставляю его в другой файл, я хочу, чтобы отображалась одна и та же информация) Любые идеи?
Один из ключевых моментов, о которых я думаю, заключается в перечислении ошибок, но как убедиться, что они никогда не используются в нескольких местах?
(Примечание: для этого вопроса, Я, рассматривая только ошибки, вызванные ошибками кодирования. Не то, что может законно происходить как плохой ввод. OTOH эти ошибки могут представлять интерес для сообщества в целом .)
(Примечание 2: программа, о которой будет приложение командной строки работает на компьютере пользователя, но опять же, это только мое положение)
(Примечание 3:.. целевой язык D и I'm very willing для погружения в meta-programming. Ответы на другие языки более чем приветствуются!)
(примечание 4: Я явно хочу НЕ использовать фактические расположения кодов, а скорее некоторые символические имена для ошибок. Это связано с тем, что, если код изменяется практически любым способом, меняются коды.)
Хорошее падение назад, но я предпочел бы, чтобы эта ошибка прерывала сборку или более быструю обратную связь. – BCS 2008-11-25 20:10:42