.NET/.NET Core中更清晰的堆疊追蹤

來源:互聯網
上載者:User

.NET/.NET Core中更清晰的堆疊追蹤

在基於異常的語言中,堆疊追蹤是用於診斷問題最重要的工具之一。在某些情況下,開發人員能得到的僅為一條簡短的錯誤資訊以及堆疊追蹤,尤其是當個人可識別資訊(PII)約束限制了日誌記錄的內容時。

隨著工作平行程式庫(TPL)的出現以及緊隨其後的async/await函數,堆疊追蹤變得愈發難以理解。 有效資訊被隱藏起來的問題並不罕見。

事實上,該提升不可小覷。 在.NET 4.5早期版本以及引入ExceptionDispatchInfo類之前,堆疊追蹤是無法跨越非同步邊界的,開發人員將不得不深入探究內部異常問題。但所需研究的工作遠不止於此。

Illyriad遊戲開發商Ben Adams自行對.NET Core 2.1中的堆疊追蹤進行了改進提升。他的工作主要集中在以下這些領域:

  1. 消除由於async/await警示引入的噪音;
  2. 顯示哪些方法重載是在非同步或迭代器上下文中被調用的;

同時,Anirudh Agnihotry更新了Dictionary / ConcurrentDictionary所採用的KeyNotFoundException,以指出哪個關鍵字還未被發現,這曾是使.NET開發人員重新回到1.0版本的主要困擾。

如果您已在使用.NET Framework,或不想再繼續等待.NET Core 2.1版本,那麼你還可以通過調用Ben.Demystifier庫以使用Ben的工作成果。這種方式可超越.NET Core更新後可滿足的功能,並使堆疊追蹤代碼更接近於原始C#代碼,擁有更好的可讀性。 (對於.NET Core而言,這並不能算是可選方式之一,因為在VB或F#堆疊追蹤中出現C#關鍵字意義不大)。

.NET Core是以MIT許可證發布的。 Ben.Demystifier採用Apache許可。

查看英文原文: Cleaner Stack Traces in .NET/.NET Core

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.