Bagikan melalui


Middleware: Middleware Handler Pengecualian melemparkan pengecualian asli jika handler tidak ditemukan

Sebelum ASP.NET Core 5.0, Middleware Handler Pengecualian menjalankan handler pengecualian yang dikonfigurasi ketika pengecualian telah terjadi. Jika handler pengecualian, dikonfigurasi melalui ExceptionHandlingPath, tidak dapat ditemukan, respons HTTP 404 diproduksi. Responsnya menyesatkan karena:

  • Tampaknya kesalahan pengguna.
  • Mengaburkan fakta bahwa pengecualian terjadi di server.

Untuk mengatasi kesalahan menyesatkan di ASP.NET Core 5.0, ExceptionHandlerMiddleware melemparkan pengecualian asli jika handler pengecualian tidak dapat ditemukan. Akibatnya, respons HTTP 500 diproduksi oleh server. Respons akan lebih mudah diperiksa di log server saat men-debug kesalahan yang terjadi.

Untuk diskusi, lihat Masalah GitHub dotnet/aspnetcore#25288.

Versi yang diperkenalkan

5.0 RC 1

Perilaku yang lama

Middleware Handler Pengecualian menghasilkan respons HTTP 404 jika handler pengecualian yang dikonfigurasi tidak dapat ditemukan.

Perilaku yang baru

Middleware Handler Pengecualian melemparkan pengecualian asli jika handler pengecualian yang dikonfigurasi tidak dapat ditemukan.

Alasan untuk berubah

Kesalahan HTTP 404 tidak membuatnya jelas bahwa terjadi pengecualian pada server. Perubahan ini menghasilkan kesalahan HTTP 500 untuk membuatnya jelas bahwa:

  • Masalah ini tidak disebabkan oleh kesalahan pengguna.
  • Pengecualian ditemui pada server.

Tidak ada perubahan API. Semua aplikasi yang ada akan terus dikompilasi dan dijalankan. Pengecualian yang dilemparkan ditangani oleh server. Misalnya, pengecualian dikonversi ke respons kesalahan HTTP 500 oleh Kestrel atau HTTP.sys.

API yang Terpengaruh

Tidak ada