C# WCF异步调用方法是否可能失败?

C# WCF异步调用方法是否可能失败?,c#,wcf,windows-phone-7,windows-phone-8,C#,Wcf,Windows Phone 7,Windows Phone 8,据我所知,当有特定于应用程序的错误处理可用时,使用它们不是一种好的做法 我正在从WCF服务调用一个方法,如下所示: Service.Login += new EventHandler<LoginCompletedEventArgs>(LoginCompleted); Service.LoginAsync(username, password); 由于错误可以在方法完成后进行分析,因此是否仍有必要在“LoginAsync”调用周围放置try-catch块?换句话说,“LoginAsy

据我所知,当有特定于应用程序的错误处理可用时,使用它们不是一种好的做法

我正在从WCF服务调用一个方法,如下所示:

Service.Login += new EventHandler<LoginCompletedEventArgs>(LoginCompleted);
Service.LoginAsync(username, password);

由于错误可以在方法完成后进行分析,因此是否仍有必要在“LoginAsync”调用周围放置try-catch块?换句话说,“LoginAsync”调用会出什么问题吗?

不太确定会发生什么,但一些场景突然出现在我的脑海中:池中的线程用完了,内存不足……我认为这是不必要的。

是的。电话本身可能会出问题。。。例如,假设您的网络中断,您实际上无法完成通话。try/catch在这些情况下很有用。处理异步操作期间发生的异常正是您应该做的


基本上,如果您想在进行调用时处理任何异常,请使用try/catch。如果您想在异步操作期间处理任何异常,请按原样使用
e.Error

如果发生这些情况,你知道哪一段代码会把它们捡起来吗?我认为这类事情应该在最后一道防线上处理:这可能是主方法中的一次尝试或类似的事情,因为我认为这是一个非常边缘的情况。=)
if (e.Error == null)