異常有可能導致某些資源沒有釋放到,這時可以使用using或者finally來釋放資源。 有些異常的可能會間歇性的發生,不影響業務運行的,可以視為正常的邏輯,那在異常可能發生前,應該使用判斷邏輯。 if (conn.State != ConnectionState.Closed) { conn.Clo ...
- 異常有可能導致某些資源沒有釋放到,這時可以使用using或者finally來釋放資源。
- 有些異常的可能會間歇性的發生,不影響業務運行的,可以視為正常的邏輯,那在異常可能發生前,應該使用判斷邏輯。
if (conn.State != ConnectionState.Closed) { conn.Close(); }
如果你覺得該異常基本不會發生,那就不用判斷了,讓它自己拋出來吧。
見仁見智吧!!!
- 在設計一個類、一個方法、一個屬性時應儘可能避免異常。有時候可以通過返回預設值或null來避免異常的發生。
客戶端獲取到null,可以提示用戶,服務尚未啟動。
- 在.net中實在找不到合適的異常,才自定義。屬性(屬性實際就是欄位的封裝方法,語法糖罷了)或方法調用不適當,則會引發 InvalidOperationException 異常。
無效的參數,則引發 ArgumentException 異常或從 ArgumentException 派生的一個預定義類。 - 自定義異常,最後要有這三個構造函數
-
Exception()(使用預設值)。
-
Exception(String),它接受字元串消息。---->Message
-
Exception(String, Exception),它接受字元串消息和內部異常。 ----->第二個參數就是InnerException
-
- 跨程式訪問時要註意異常的可訪問性,例如A程式訪問B程式,B程式返回了一個異常,這時要保證A程式可以識別該異常。(怎麼識別呢?A程式和B程式都有這個異常的dll或者...)