簡體   English   中英

System.NullReferenceException的來源

[英]Source of System.NullReferenceException

我正在為網上商店實現錯誤記錄器,僅在特定類中記錄NullReferenceException僅對特定級別有用。 正如我所知道的那樣,我對如何防止異常並不十分感興趣,但是有時它仍然會發生,因此錯誤記錄器也是如此。

然后的問題是:如何在所有異常信息中找到System.NullReferenceException的源。

確保記錄完整的堆棧跟蹤。 假設您已打開調試信息(沒有理由不使用Web應用程序...),您應該能夠找到引起問題的那一行。

當然,如果您具備以下條件,那將無法始終為您提供所需的所有信息:

if (foo.Bar.Baz && person.Address.Road.Length)

一行...但這是您獲得的最佳起點。

此外,添加參數驗證的方法可以把它簡單了很多牽制什么是錯的。 就我個人而言,我是輔助方法的愛好者。 例如,在Noda Time中,我們具有Preconditions ,因此我可以調用:

Preconditions.CheckNotNull(foo, "foo");

(它也返回foo的值,這在將參數復制到字段中的構造函數中很方便)。

越早檢測到意外為空的引用就越好。

如果我正確理解了該問題,請在Visual Studio中轉到“調試”>“異常”,然后檢查所有引發異常的選項。 這將使您看到調試時拋出的所有內容。 您可以使用InnerException的內容來確定導致錯誤的根源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM