2013-01-04 77 views
0

據我所知,當應用程序特定的錯誤處理可用時,使用它們並不是一個好習慣。WCF異步調用方法可能失敗嗎?

我打電話從WCF服務的方法,像這樣:

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

在出現的「LoginCompleted」的方法,我可以使用以下方法來檢查錯誤:

if (e.Error == null) 

爲錯誤可以在方法完成後分析,是否仍需要在「LoginAsync」調用中放置try-catch塊?換句話說,可以什麼與'LoginAsync'調用出錯?

回答

1

是的。通話本身可能會出現問題......例如,您的網絡故障,您無法完成通話。 try/catch將對這些情況有用。處理異步操作期間發生的異常正在完成您應該如何操作的過程。

基本上,如果你想在處理任何異常中進行調用,請使用try/catch。如果您想在異步操作期間處理任何異常,請像以前一樣使用e.Error

1

不太清楚會發生什麼,但有些場景跳到我的頭:出線程池,內存...我認爲這是不必要

+0

如果這些事情發生了,任何想法哪部分代碼會把它們拿起來? – user1567095

+0

我認爲這些東西是應該在最後一道防線上應該處理的東西:這可能是主要方法中的嘗試/捕獲或類似的東西,因爲我認爲這是一個非常微弱的情況。 =) – Hugo

+0

謝謝你的回答。 – user1567095