Как перехватить ошибки WCF на стороне клиента - PullRequest
3 голосов
/ 10 июня 2010

На стороне сервера есть IErrorHandler и т. Д.

На клиенте исключения вызываются при вызове методов на канале.

Есть ли способ перехватить исключения на клиенте, прежде чем они будут выброшены во время вызова метода?

1 Ответ

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

Нет, вы не можете перехватить исключения до того, как они произойдут .... или чего вы действительно пытаетесь достичь ??

То, что вам нужно сделать на стороне клиента, это в основном просто защитное программирование: поместите ваши сервисные вызовы в блоки try...catch... и обработайте исключения, которые вы можете (и хотите) обрабатывать:

MyServiceClient client = new MyServiceClient();

try
{
    client.MakeYourCall();
}
catch(EndpointNotFoundException ex)
{
   // tell the user the endpoint doesn't exist
}      
catch(CommunicationException ex)
{
   // catch the WCF base exception to handle all other WCF related issues, if needed
}      
catch(TimeoutException ex)
{
   // tell the user a timeout occured
}      

Все связанные с WCF исключения являются потомками базового CommunicationException класса (за исключением, как я недавно узнал: QuotaExceededException ) - перехватывать более конкретные, если вы можете реагировать на них.

А также есть общесистемный TimeoutException, который также может быть чем-то, что вы хотите поймать (это не зависит от WCF, поэтому оно не происходит от CommunicationException)

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