0

据我所知,当有特定于应用程序的错误处理可用时,使用它们并不是一个好习惯。

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

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

在生成的“LoginCompleted”方法中,我可以使用以下内容检查错误:

if (e.Error == null)

由于一旦方法完成就可以分析错误,是否仍然需要在“LoginAsync”调用周围放置 try-catch 块?换句话说,“LoginAsync”调用会出现什么问题吗?

4

2 回答 2

1

是的。呼叫本身可能会出现问题......例如,假设您的网络出现故障并且您实际上无法完成呼叫。try/catch 对这些情况很有用。处理异步操作期间发生的异常完全按照您应该做的方式进行。

基本上,如果您想在调用过程中处理任何异常,请使用 try/catch。如果要在异步操作期间处理任何异常,请照常使用e.Error

于 2013-01-05T00:21:03.360 回答
1

不太确定会发生什么,但有些场景跳到了我的脑海:池中的线程不足,内存不足......我认为没有必要。

于 2013-01-04T23:32:11.697 回答