Воссоздание цепочки исключений - PullRequest
0 голосов
/ 05 декабря 2011

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

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

Кто-нибудь знает, как это сделать?

Чтобы избежать путаницы, это совершенно по своему усмотрению, я делаю запросы в xml на веб-сервер и возвращаю xml, если возникает исключение, я сериализую эту цепочку в xml и возвращаю этот xml вызывающему клиенту.

1 Ответ

0 голосов
/ 07 декабря 2011

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

To "rethrow ", затем вы можете выдать исключение на стороне клиента, которое принимает эту деталь в качестве параметра (вроде как внутреннее исключение).

Если вы все еще хотите использовать как можно больше реальных исключений, вы можете создатьЯвный список типов исключений, которые клиент поддерживает, или отражает ваши клиентские сборки.Таким образом, вы можете сбросить исключение верхнего уровня с сервера, создав локальное через Activator.CreateInstance.Возможно, вы могли бы объединить подходы.

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