Dot-Net
明確拋出 NullReferenceException 的原因?
我正在清理一些遺留程式碼,並且發現了顯式拋出 a 的方法
NullReferenceException(例如:檢查類的某些屬性是否為空,或檢查配置時)。由於在空引用的情況下 CLR 會拋出這種類型的異常,因此對於應用程序顯式拋出異常來說,這似乎是一個非常糟糕的選擇。我的問題是 - 有什麼理由可以讓 a
NullReferenceException成為從程式碼中顯式拋出異常的好選擇?
的文件暗示您不應將其從應用程序中拋出:
NullReferenceException請注意,應用程序拋出ArgumentNullException異常,而不是此處討論的 NullReferenceException 異常。
而且我確信我在其他地方看到過指導(目前找不到任何指導-> 它在這裡https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/using-standard- exception-types),您應該避免拋出執行時拋出的異常類型(儘管我將連結到顯示執行時拋出“應用程序”異常的東西)
如果您正在檢查方法中的屬性,在繼續之前,聽起來您可能想用InvalidOperationException替換它們:
InvalidOperationException 用於呼叫方法失敗是由無效參數以外的原因引起的情況。
方法呼叫處於錯誤狀態聽起來符合這個定義。