Developer Exception Page Middleware in ASP.NET Core Application
在這篇文章中,我將向大家介紹,怎么在ASP.NET Core應用程式中,使用例外頁面中間件,來處理我們程式中未處理的例外,在閱讀這篇文章之前,可以看看我這個系列的之前寫的文章,例外處理是所有應用程式中,特別關鍵的一個點,我們可以通過各種方式方法,來處理例外,但是在這篇文章我要向大家講解,怎樣使用例外頁面中間件來處理例外,這篇文章中,我們主要討論下面幾個點:
什么是開發者例外頁面中間件?
怎樣在ASP.NET Core應用程式中,使用例外頁面中間件?
怎樣定制例外中間件?
我們在哪配置例外頁面中間件?
理解例外頁面中間件
默認情況下,ASP.NET Core應用程式,如果發生了例外,就是僅僅簡單的回傳一個狀態碼,我們通過一個例子,來了解一下,我們修改一下Configure方法,回傳一個例外:

運行程式:就會看到這樣的頁面,

正如你上圖所看到的,回傳了一個500狀態碼,表示:服務器內部例外,但是作為一個開發者,當你開發應用程式,你應該要在頁面上知道,例外的詳細資訊,然后你才能分析,并采取措施解決Bug.
怎樣在ASP.NET Core應用程式中,使用DeveloperExceptionPage 中間件?
當程式發生例外的時候,如果你想在頁面中顯示例外的詳細資訊的話,你需要使用Developer Exception Page中間件,所以我們來修改一下Configure方法,在我們的程式中,添加例外中間件,

然后運行應用程式,就看到為什么發生例外了,也能定位錯誤了!

正如你在圖中所看到的,Developer Exception Page包含一些Tab,例如:Stack、Query、Cookies、Headers. Stack向你展示哪一行代碼發生的例外,Query向你展示Query Strings相關資訊,Cookies向你展示請求設定的Cookies,Header向你展示客戶端發送的請求報文頭,
如果你查看Query Tab就會發現,沒有Querystring相關資訊,因為你沒有在URL中傳遞querystring的資訊,或者你沒有在請求中設定Cooikes.我們在后面的文章中,將會詳細討論querystring 以及Cookies.
請注意:請僅僅只在看來開發模式下面使用Developer Exception Page中間件,因為你不想在生產環境顯示這個開發的例外資訊的,
怎樣在ASP.NET Core應用程式中定制UseDeveloperExceptionPage中間件?
如果你想,你也可以定制例外中間件,你需要記住的是:不管你什么時候,想要定制特定中間件,你需要使用下面這些東西:
- UseDeveloperExceptionPage==>為了能定制例外中間件,需要使用DeveloperExceptionPageOption物件;
- UseDefaultFiles==>使用DefaultFileOptions物件來定制中間件;
- UseStaticFiles==>使用StaticFileOptions物件來定制中間件;
- UseFileServer==>使用FileServerOptions物件來定制中間件;
我們將要定制UseDeveloperExceptionPage中間件,所以我們需要使用DeveloperExceptionPageOptions物件,看下圖:

運行程式:

DeveloperExceptionPageOptions類的SourceCodeLineCount屬性指定了導致例外的代碼行之前和之后要包含的代碼行數,
我們在哪需要配置例外中間件UseDeveloperExceptionPage?
我們應該盡可能早的,在請求管道中配置例外中間件,這樣我們就能發現,并顯示例外資訊在頁面中了,
我們來修改一下Configure方法,將例外中間件放在Run方法之后再注冊,

然后我們再次運行程式:

就會發現,不會在頁面顯示詳細的例外資訊了,這也就是為什么,我強調,我們應該盡可能早的配置例外中間件,以便處理程式中為處理的例外,
這篇文章,是我們ASP.NET Core基礎概念學習系列的最后一篇文章了,從后面的系列開始,我們就正式進入ASP.NET Core的相關學習了,希望大家喜歡,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/40678.html
標籤:.NET Core
上一篇:.NET 利用PuppeteerSharp生成頁面圖片
下一篇:串口資料處理分包處理
