例外狀況必須為公用
更新:2007 年 11 月
型別名稱 |
ExceptionsShouldBePublic |
CheckId |
CA1064 |
分類 |
Microsoft.Design |
中斷變更 |
非中斷 |
原因
非公用例外狀況 (Exception) 是直接衍生自 System.Exception、System.SystemException 或 System.ApplicationException。
規則描述
內部例外狀況只會在自己的內部範圍內顯示。當例外狀況超出內部範圍後,只能使用基本例外狀況來攔截例外狀況。如果內部例外狀況是繼承自 T:System.Exception、T:System.SystemException 或 T:System.ApplicationException,外部程式碼就沒有足夠的資訊可以知道應該如何處理此例外狀況。
但是,如果程式碼有公用的 (Public) 例外狀況可於稍後當做內部例外狀況的基底,則可合理假設程式碼此後將可對此基底例外狀況採取適當的處理方式。公用例外狀況擁有的資訊將比 T:System.Exception、T:System.SystemException 或 T:System.ApplicationException 更為豐富。
如何修正違規
請將例外狀況變成公用例外狀況,或是從 System.Exception、System.SystemException 或 System.ApplicationException 以外的其他公用例外狀況衍生內部例外狀況。
隱藏警告的時機
如果您確定在所有情況下,私用的 (Private) 例外狀況都會在自己的內部範圍內遭到攔截,請隱藏這項規則的訊息。
範例
以下顯示違反此規則的三個範例。