CA2219:不要在 exception 子句中引發例外狀況
型別名稱 |
DoNotRaiseExceptionsInExceptionClauses |
CheckId |
CA2219 |
分類 |
Microsoft.Usage |
中斷變更 |
非中斷、中斷 |
原因
從 finally、filter 或 fault 子句擲回例外狀況 (Exception)。
規則描述
在 exception 子句中引發例外狀況時,偵錯的難度將會大幅增加。
在 finally 或 fault 子句中引發例外狀況時,新的例外狀況會隱藏作用中的例外狀況 (如果有的話)。 這將使原始錯誤變得難以偵測及偵錯。
在 filter 子句中引發例外狀況時,執行階段會以無訊息模式攔截例外狀況,並導致篩選條件判定為 false 的結果。 因為沒有任何方法可以分辨判定為 false 之篩選條件與從篩選條件擲回之例外狀況兩者的差異, 所以很難在篩選條件的邏輯中偵測錯誤和進行偵錯。
如何修正違規
若要修正此規則的這項違規情形,請勿從 finally、filter 或 fault 子句明確引發例外狀況。
隱藏警告的時機
請勿隱藏此規則的警告。 在 exception 子句中引發的例外狀況,並不能為執行程式碼帶來任何好處。