Использование исключений или строк, содержащих коды ошибок в службах программного обеспечения - PullRequest
1 голос
/ 30 января 2010

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

Заранее благодарим за помощь!

Ответы [ 2 ]

1 голос
/ 30 января 2010

Я думаю, что есть два способа сделать это.

  1. Включите элемент Error-String в элемент Response каждой функции веб-службы. Если он пуст, то вызов функции прошел успешно. Если он установлен, то возникла исключительная ситуация, и строка ошибки сообщает вам причину.
  2. Используйте элемент SOAP-Fault для обработки исключений. Я думаю, что каждый SOAP-Toolkit предлагает способ заполнить этот элемент (например, посмотрите на gSoap Framework http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc11)
0 голосов
/ 03 февраля 2010

Я склонен сказать, что коды ошибок почти всегда плохая идея. Исключения обеспечивают разумную схему обработки ошибок по умолчанию: если вы не обрабатываете ее, вы фактически утверждаете, что это не может произойти в вашей ситуации. Если вы ошибаетесь, ваша программа дает сбой быстро и с четким сообщением об ошибке. Коды возврата не дают таких гарантий. Поведение по умолчанию здесь таково, что ошибка попадает под коврик, и программа продолжает работу, как будто ничего не произошло.

Исключения из этого правила:

  1. Если ошибка очень незначительная, то продолжение по умолчанию, как будто ничего не произошло, является лучшим значением по умолчанию, чем сбой.
  2. В средах с очень ограниченными ресурсами (т. Е. Не на серверах) исключения могут быть дорогими.
...