我知道一般的或「全線」的異常處理是一個很大的禁忌,但我相信在這種情況下它是可以的。有沒有辦法在C#中的靜態類中捕獲某種類型的所有異常?
考慮一下BinaryWriter/BinaryReader操作的一些自定義包裝。 (是的,我知道.NET序列化)在這個類的所有方法中,都有可能存在某些異常,例如傳遞一個字節[],對於您嘗試讀取的數據來說太短它或試圖讀取不正確的類型。
因此,所有這些不同的寫入/讀取數據的方法,我想以某種方式處理此類中拋出的某些異常的所有實例。例如,每當拋出一個EndOfStreamException
時,返回錯誤狀態或設置特定標誌。
有沒有一個乾淨的/好的方法來做到這一點,每次讀/寫操作周圍扔try/catch?或者,這仍然是一個不容否認的問題,因爲圖書館的用戶應該試着自己去接聽課程的電話?
二進制打字機/閱讀器功能已經在我自己的對象中。問題是有許多不同的功能(針對不同類型的寫入/讀取),我試圖繞過每一個嘗試/捕獲這些功能。 – mphair 2010-07-30 17:27:38
@mphair - 如果您有多個函數,每個函數都會調用多個讀/寫函數,那麼您無法避免這種情況。如果你有一個函數(比如'Serialize()')調用很多其他函數,那麼你可以在那裏捕獲異常。 – 2010-07-30 17:31:21