Вам нужно будет помещать каждый из ваших вызовов в блок try {} catch {}, поскольку именно там он будет распространяться на стороне клиента, возможно, включая некоторые возможные исключения, передаваемые через прокси-сервер какого-то типаособая обработка WCF.Используя экранирование исключений, вы также можете указать пользовательские исключения FaultExceptions и украсить метод атрибутами, чтобы разрешить отправку этого исключения клиенту.Таким образом, вы можете быть немного более умным, когда возникает исключение.например,
try{
... call service
}catch(FaultException<TimeoutFault> ex){
.. try one more time
}catch(FaultException<InvalidSelection> ex){
... show message to user from ex.Details.InvalidProperty
}catch(FaultException){
... handle
}catch (CommunicationException ex){
... remember this is WCF so the call itself might fail
}catch(Exception ex){
... handle
}
Идентификатор рекомендуется читать http://blogs.msdn.com/b/pedram/archive/2008/01/25/wcf-error-handling-and-some-best-practices.aspx, поскольку он имеет несколько хороших советов /