[英]Why thrown exception is not correctly matched with catch block C#
執行沒有進入第二個catch塊, try-catch
顯然不會那樣工作,異常被拋出調用堆棧,任何后續catch
子句都被忽略。
它只是看起來那樣,因為你在發布模式下調試這不是一個好主意,因為IDE可能缺少重要的調試信息,因此在輸入第二個catch
子句時錯誤地顯示執行停止。
請注意,在那一點停止真的沒有意義,如果執行以某種方式使它成為第二個catch
子句,它將在throw
語句中停止,而不是之前。
為了縮短它,真正發生的是第一次throw
執行停止並且IDE沒有正確顯示它。
故事的道德啟示; 不要在發布模式下調試。 如果您正在運行VS2015,它實際上會警告您, 發布模式下的調試體驗將會低於標准(不確定此警告是否出現在先前版本中)。
更新 :似乎問題與發布模式下的調試無關,因為它仍然在調試模式下發生。 不過,關鍵是調試不應該在發布模式下進行,因為這樣的時髦事情可能會發生。 我會嘗試清理解決方案,看看是否能解決問題。 如果它沒有,我不會出汗,代碼表現正常,它只是IDE無法正確顯示執行停止的地方,沒什么大不了的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.