Berpindah daripada API Web ASP.NET tradisional ke Teras ASP.NET memperkenalkan cabaran dalam pengurusan pengecualian. Kekurangan penyelesaian yang jelas pada mulanya menyebabkan kekeliruan. Walaupun penapis pengecualian tersuai adalah penyelesaian biasa, penapis itu terbukti tidak mencukupi apabila pengecualian berasal dari penapis kebenaran.
ASP.NET Core 8 menawarkan penyelesaian yang diperkemas melalui antara muka IExceptionHandler
. Antara muka ini memberi kuasa kepada pembangun untuk mencipta logik pengendalian pengecualian tersuai dan menyepadukan kebergantungan yang diperlukan dengan lancar.
Berikut ialah contoh praktikal IExceptionHandler
pelaksanaan:
<code class="language-csharp">public class MyExceptionHandler : IExceptionHandler { public async ValueTask<bool> TryHandleAsync( HttpContext context, Exception exception, CancellationToken cancellationToken) { var errorResponse = new { message = exception.Message }; await context.Response.WriteAsJsonAsync(errorResponse, cancellationToken); return true; } }</code>
Mendaftarkan pengendali ini melibatkan penambahan middleware berikut:
<code class="language-csharp">builder.Services.AddExceptionHandler<MyExceptionHandler>(); app.UseExceptionHandler(_ => { });</code>
IExceptionHandler
Walaupun pengendalian pengecualian ASP.NET Core berbeza daripada pendahulunya, IExceptionHandler
menawarkan kaedah yang mantap dan mudah untuk mengurus semua pengecualian dengan berkesan, tanpa mengira asalnya dalam aplikasi atau penapisnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Pengecualian dengan Berkesan dalam API Web ASP.NET Core 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!