В отношениях клиент-сервер должен ли сервер всегда пересылать исключение клиенту? - PullRequest
1 голос
/ 02 июня 2010

У меня есть набор веб-служб (сервер) и приложение, которое потребляет это (клиент). При такого рода отношениях сервер должен всегда генерировать исключения (т. Е. В блоке throw, перебрасывать перехваченное исключение), и клиент перехватывает это. Исключения, которые сервер может обработать, он будет обрабатывать и не перебрасывать, но все остальное будет брошено на вызывающий уровень для дальнейших действий (приложение-потребитель может вызвать окно сообщения или что-то еще).

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 июня 2010

Существует несколько типов ошибок.

  • В случае ошибок, которые клиент может исправить и повторить, дайте ему инструкции о том, что нужно исправить.
  • Что касается других ошибок, когда повторная попытка ничего не изменит, например несанкционированное действие, сообщите пользователю, почему он не может выполнить это действие, и если что-то можно сделать, чтобы изменить ситуацию.
  • Как вы предложили, если клиент выдает запрос на обновление записи, и что-то на сервере, вне контроля клиента, происходит, но сервер может восстановиться, то не уведомляйте клиента. Если вам нужно знать, сервер должен уведомить вас.
  • Если ошибка происходит на сервере, но сервер не может восстановиться, вам обязательно нужно уведомить клиента о сбое и либо уведомить вас, либо повторить попытку позже. Опять же, система должна уведомить вас.
0 голосов
/ 02 июня 2010

Эта конкретная ошибка звучит как проблема конфигурации на сервере, поэтому у клиента нет никаких средств действия и ему не следует предоставлять эту информацию.

Обычно я описываю такого рода ошибки в общем сообщении об ошибке («Системная ошибка, обратитесь к системному администратору») и регистрирую ошибку на сервере (для последующей проверки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...