共用方式為


CA2219:不要在 exception 子句中引發例外狀況

型別名稱

DoNotRaiseExceptionsInExceptionClauses

CheckId

CA2219

分類

Microsoft.Usage

中斷變更

非中斷、中斷

原因

從 finally、filter 或 fault 子句擲回例外狀況 (Exception)。

規則描述

在 exception 子句中引發例外狀況時,偵錯的難度將會大幅增加。

在 finally 或 fault 子句中引發例外狀況時,新的例外狀況會隱藏作用中的例外狀況 (如果有的話)。這將使原始錯誤變得難以偵測及偵錯。

在 filter 子句中引發例外狀況時,執行階段會以無訊息模式攔截例外狀況,並導致篩選條件判定為 false 的結果。因為沒有任何方法可以分辨判定為 false 之篩選條件與從篩選條件擲回之例外狀況兩者的差異,所以很難在篩選條件的邏輯中偵測錯誤和進行偵錯。

如何修正違規

若要修正此規則的這項違規情形,請勿從 finally、filter 或 fault 子句明確引發例外狀況。

隱藏警告的時機

請勿隱藏此規則的警告。在 exception 子句中引發的例外狀況,並不能為執行程式碼帶來任何好處。

相關規則

CA1065:不要在非預期的位置中引發例外狀況

請參閱

其他資源

設計警告