第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

捕獲異步空方法引發(fā)的異常。

捕獲異步空方法引發(fā)的異常。

C#
躍然一笑 2019-07-25 14:14:58
捕獲異步空方法引發(fā)的異常。使用Microsoft for.NET的異步CTP,是否有可能捕獲調(diào)用方法中的異步方法引發(fā)的異常?public async void Foo(){     var x = await DoSomethingAsync();     /* Handle the result, but sometimes an exception might be thrown.        For example, DoSomethingAsync gets data from the network        and the data is invalid... a ProtocolException might be thrown. */}public void DoFoo(){     try     {         Foo();     }     catch (ProtocolException ex)     {           /* The exception will never be caught.              Instead when in debug mode, VS2010 will warn and continue.              The deployed the app will simply crash. */     }}因此,基本上,我希望異步代碼中的異常出現(xiàn)在我的調(diào)用代碼中,如果這是可能的話。
查看完整描述

3 回答

?
明月笑刀無情

TA貢獻1828條經(jīng)驗 獲得超4個贊

未捕獲異常的原因是foo()方法有一個空返回類型,因此當(dāng)調(diào)用WAIT時,它只是返回。由于DoFoo()沒有等待foo的完成,因此不能使用異常處理程序。

這打開了一個更簡單的解決方案,如果您可以更改方法簽名-ALTERFoo()以便它返回類型Task然后DoFoo()能,會,可以await Foo(),如本代碼所示:

public async Task Foo() {
    var x = await DoSomethingThatThrows();}public async void DoFoo() {
    try {
        await Foo();
    } catch (ProtocolException ex) {
        // This will catch exceptions from DoSomethingThatThrows
    }}




查看完整回答
反對 回復(fù) 2019-07-27
  • 3 回答
  • 0 關(guān)注
  • 502 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號