共用方式為


當 IExceptionHandler.TryHandleAsync 傳回 true 時,會隱藏例外狀況診斷

ASP.NET Core 例外狀況處理常式中介軟體不再記錄預設所處理 IExceptionHandler 例外狀況的診斷。

推出的版本

.NET 10 Preview 7

先前的行為

先前,異常處理常式中介軟體會記錄有關 所處理 IExceptionHandler的異常狀況的診斷。

例外狀況診斷包括:

新行為

從 .NET 10 開始,如果 IExceptionHandler.TryHandleAsynctrue回 ,則預設不會再記錄例外狀況診斷。

破壞性變更的類型

此變更為行為變更

變更的原因

ASP.NET Core 使用者已提供意見反應,指出先前的行為不受歡迎。 他們的 IExceptionHandler 實作報告已處理例外狀況,但錯誤處理中介軟體仍會在應用程式的遙測中記錄錯誤。

ASP.NET Core 現在會在處理例外狀況時 IExceptionHandler 隱藏診斷,以遵循使用者預期的行為。 如有需要,也可以設定選項來自訂異常狀況診斷行為。

如果您想要處理的例外狀況繼續記錄遙測,您可以使用新 ExceptionHandlerOptions.SuppressDiagnosticsCallback 選項:

app.UseExceptionHandler(new ExceptionHandlerOptions
{
    SuppressDiagnosticsCallback = context => false;
});

傳遞至回呼的包含 context 例外狀況、要求的相關資訊,以及是否已處理例外狀況。 回呼會傳回 false ,指出不應隱藏診斷,因此還原先前的行為。

受影響的 API