Коды ошибок и лучшие практики сообщений - PullRequest
4 голосов
/ 18 февраля 2009

Я планирую систему EDI, которая, помимо прочего, отправляет подтверждающее сообщение XML, содержащее несколько элементов, но конкретно эти три; ErrorCode, ErrorSeverity и ErrorDescription.

Я, в основном, буду анализировать входящее XML-сообщение, и в зависимости от того, удастся ли или не удастся ли проанализировать форматирование сообщения, синтаксис, структуру, допустимость и некоторые бизнес-правила, я верну либо подтверждение успеха, либо неудачу.

Я могу свободно выбирать ErrorCodes, ErrorSeverity и ErrorDescription, но вместо того, чтобы наивно начинать с ErrorCode [1], ErrorSeverity [Error], ErrorDescription [Cannot Find Inbound XML File] и добавлять ошибки, которые я думаю о них во время кодирования анализатор входящих сообщений Мне было интересно, есть ли лучший способ выбора кодов ошибок и уровней серьезности?

Я знаю, что коды ошибок HTTP похожи на 2хх для сообщений OK, 4хх для определенных ошибок, 5хх для ошибок сервера и т. Д., И я задавался вопросом, есть ли у кого-нибудь хорошие предложения, которые могут помочь мне в будущем, прежде чем я закодирую себя в углу и произнесу «если бы только все мои« предупреждающие »ошибки начинались с 3 или чего-то подобного!

Я думаю, что ErrorSeverity не будет намного больше, чем [Error], [Warning], [Info] и [OK] может быть?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2009

Вы можете найти существующие коды ошибок для EDI здесь:

http://msdn.microsoft.com/en-us/library/bb245948.aspx

Системы / разработчики, с которыми вы будете общаться, вероятно, будут рады, если вы используете один из стандартов, описанных в одном из этих документов.

1 голос
/ 18 февраля 2009

Мне нравится отличать «Ошибка» (входные данные были неисправны) от «Фатальная» (система сломана). Первые требуют исправления данных и повторных попыток; другой нет.

Само собой разумеется, что любые сообщения об ошибках должны быть actionable ; они должны четко объяснить получателю, что именно не так, и какие действия необходимо предпринять для исправления ошибки в данных.

Если вы отдельно сообщаете о степени тяжести, то я не только не вижу необходимости придерживаться предварительно определенных числовых диапазонов, но и предполагаю, что такой шаг - прямолинейный. Если вы do решите, что в использовании диапазонов есть мнемоническое значение, увеличьте диапазоны как минимум в десять раз по сравнению с тем, что вам нужно сейчас (цифры дешевые, почему бы не использовать пять?; -)

Вы можете также рассмотреть возможность параметризации своих сообщений; например явные поля для указания позиции в тексте. Это облегчает для кода получение сообщения и выполнение с ним чего-либо полезного (без разбора читаемого человеком текста в поисках подсказок).

...