[英]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.