Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melaksanakan Pengendalian Ralat Tersuai dengan Butiran Pengecualian dalam ASP.NET MVC?

Bagaimanakah Saya Boleh Melaksanakan Pengendalian Ralat Tersuai dengan Butiran Pengecualian dalam ASP.NET MVC?

Linda Hamilton
Linda Hamiltonasal
2025-01-14 10:17:46789semak imbas

How Can I Implement Custom Error Handling with Exception Details in ASP.NET MVC?

Pengendalian ralat tersuai dalam ASP.NET MVC: acara Application_Error dalam Global.asax

Dalam aplikasi ASP.NET MVC, acara Application_Error dalam Global.asax adalah penting untuk mengendalikan pengecualian yang tidak dikendalikan dan menyediakan halaman ralat tersuai.

Haruskan data kepada pengawal ralat

Kod semasa dalam acara Application_Error menentukan kod status HTTP dan menetapkan objek RouteData untuk dihantar kepada pengawal Ralat. Walau bagaimanapun, kod itu tidak menyediakan cara untuk menghantar butiran pengecualian kepada pengawal.

Pendekatan yang mantap ialah menggunakan parameter rentetan pertanyaan untuk menghantar maklumat pengecualian. Kod Application_Error yang diubah suai adalah seperti berikut:

<code class="language-csharp">protected void Application_Error(object sender, EventArgs e)
{
    Exception exception = Server.GetLastError();
    Response.Clear();

    HttpException httpException = exception as HttpException;

    if (httpException != null)
    {
        string action;

        switch (httpException.GetHttpCode())
        {
            case 404:
                // 页面未找到
                action = "HttpError404";
                break;
            case 500:
                // 服务器错误
                action = "HttpError500";
                break;
            default:
                action = "General";
                break;
        }

        // 清除服务器上的错误
        Server.ClearError();

        Response.Redirect(String.Format("~/Error/{0}/?message={1}", action, exception.Message));
    }
}</code>

Pengawal Ralat

Pengawal ralat akan menerima mesej pengecualian sebagai parameter rentetan pertanyaan:

<code class="language-csharp">// GET: /Error/HttpError404
public ActionResult HttpError404(string message)
{
    return View("SomeView", message);
}</code>

Nota

Walaupun pendekatan ini membenarkan pengendalian pengecualian yang fleksibel, sila pertimbangkan perkara berikut:

  • Elakkan gelung tak terhingga dalam pengendalian ralat.
  • Mengubah hala ke tindakan ASP.NET MVC mencipta objek sesi untuk permintaan, yang mungkin memberi kesan kepada prestasi pada sistem penggunaan tinggi.
  • Pastikan pengendalian ralat adalah mantap dan jangan benarkan maklumat sensitif dipaparkan kepada pengguna yang tidak dibenarkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pengendalian Ralat Tersuai dengan Butiran Pengecualian dalam ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn