Sdílet prostřednictvím


Diagnostika výjimek se potlačí, když IExceptionHandler.TryHandleAsync vrátí hodnotu true

Middleware pro zpracování výjimek v ASP.NET Core už ve výchozím nastavení nezaznamenává diagnostiku pro výjimky zpracované IExceptionHandler.

Verze byla představena

.NET 10 Preview 7

Předchozí chování

Dříve middleware pro obsluhu výjimek zaznamenal diagnostiku o výjimkách, které IExceptionHandler zpracovával.

Diagnostika výjimek:

Nové chování

Počínaje verzí .NET 10, pokud IExceptionHandler.TryHandleAsync vrací true, diagnostika výjimek se standardně již nezaznamenává.

Typ zásadní změny

Tato změna je změna chování.

Důvod změny

Uživatelé ASP.NET Core poskytli zpětnou vazbu, že předchozí chování bylo nežádoucí. Jejich IExceptionHandler implementace oznámila, že výjimka byla zpracována, ale middleware zpracování chyb stále zaznamenal chybu v telemetrii aplikace.

ASP.NET Core nyní sleduje chování očekávané uživateli potlačováním diagnostiky při IExceptionHandler zpracování výjimky. Možnosti konfigurace jsou také k dispozici pro přizpůsobení chování diagnostiky výjimek v případě potřeby.

Pokud chcete zpracovávat výjimky, abyste mohli dál zaznamenávat telemetrii, můžete použít novou ExceptionHandlerOptions.SuppressDiagnosticsCallback možnost:

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

Předání context zpětnému volání obsahuje informace o výjimce, požadavku a o tom, jestli byla výjimka zpracována. Zpětné volání vrací false, aby označilo, že diagnostika by neměla být potlačena, čímž se obnoví předchozí chování.

Ovlivněná rozhraní API