Exception Handling এবং Error Pages কাস্টমাইজ করা

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Logging এবং Monitoring |
207
207

ASP.NET Core অ্যাপ্লিকেশনগুলিতে Exception Handling এবং Error Pages কাস্টমাইজ করা খুবই গুরুত্বপূর্ণ, কারণ এটি আপনার অ্যাপ্লিকেশনের ইউজার এক্সপেরিয়েন্স এবং সিস্টেমের স্থিতিশীলতা বজায় রাখতে সাহায্য করে। ASP.NET Core-এ এক্সসেপশন হ্যান্ডলিং এবং এরর পেজ কাস্টমাইজ করার জন্য কিছু বিল্ট-ইন মেকানিজম রয়েছে।


Exception Handling এর ভূমিকা

Exception Handling হল সেই প্রক্রিয়া যার মাধ্যমে অ্যাপ্লিকেশন ত্রুটি বা অপ্রত্যাশিত পরিস্থিতি ডিটেক্ট এবং হ্যান্ডেল করে। ASP.NET Core অ্যাপ্লিকেশনগুলিতে, আপনি অ্যাপ্লিকেশন চলাকালে কোনো এক্সসেপশন ঘটে গেলে তার জন্য কাস্টম প্রক্রিয়া সেট করতে পারেন।

ASP.NET Core অ্যাপ্লিকেশনে Exception Handling দুটি প্রধান জায়গায় কাজ করে:

  1. Global Error Handling: অ্যাপ্লিকেশনের মধ্যে কোথাও কোনো এক্সসেপশন ঘটলে এটি সাধারণভাবে হ্যান্ডল করে।
  2. Action-based Error Handling: নির্দিষ্ট Controller বা Action Method-এ এক্সসেপশন হ্যান্ডল করা হয়।

ASP.NET Core-এ Global Exception Handling

ASP.NET Core অ্যাপ্লিকেশনে global exception handling সাধারণত middleware ব্যবহার করে করা হয়। এটি অ্যাপ্লিকেশন-wide এক্সসেপশন হ্যান্ডলিংয়ের জন্য সবচেয়ে সাধারণ পদ্ধতি।

Example: Global Exception Handling in Startup.cs

আপনি UseExceptionHandler middleware ব্যবহার করে অ্যাপ্লিকেশনের exception handling কাস্টমাইজ করতে পারেন। এটি এক্সসেপশন ঘটে গেলে একটি নির্দিষ্ট পেজ বা URL-এ রিডিরেক্ট করে।

public class Startup
{
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();  // Development এ ডেভেলপার এক্সসেপশন পেজ দেখাবে
        }
        else
        {
            // Production-এ এক্সসেপশন হ্যান্ডলিং
            app.UseExceptionHandler("/Home/Error");  // Error পেজে রিডিরেক্ট হবে
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();
        
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
        });
    }
}

এখানে, যখন কোনো এক্সসেপশন ঘটে, তখন ব্যবহারকারীকে /Home/Error পেজে রিডিরেক্ট করা হবে।

Error Controller:

আপনার Error পেজ তৈরি করার জন্য একটি Controller তৈরি করুন।

public class HomeController : Controller
{
    public IActionResult Error()
    {
        return View();
    }
}

এখন, /Home/Error এ একটি কাস্টম পেজ দেখাতে পারেন।

Error View:

Views/Home/Error.cshtml ফাইলটি তৈরি করুন:

@{
    ViewData["Title"] = "Error";
}

<h1>An error occurred while processing your request.</h1>
<p>Please try again later.</p>

এটি একটি সাধারণ error পেজ যা ব্যবহারকারীকে একটি সাধারণ ত্রুটির বার্তা দেখাবে।


Exception Handling for Specific Actions

ASP.NET Core-এ আপনি try-catch ব্লক ব্যবহার করে নির্দিষ্ট Controller Action বা মেথডে এক্সসেপশন হ্যান্ডলিং করতে পারেন। এটি একটি কাস্টম এক্সসেপশন হ্যান্ডলিং লজিক প্রয়োগ করতে ব্যবহৃত হয়।

Example: Action-level Exception Handling

public class ProductController : Controller
{
    public IActionResult Details(int id)
    {
        try
        {
            var product = GetProductById(id);  // একটি ফাংশন যা প্রোডাক্ট লোড করে
            return View(product);
        }
        catch (ProductNotFoundException ex)
        {
            // কাস্টম এক্সসেপশন হ্যান্ডলিং
            return View("Error", new ErrorViewModel { Message = "Product not found." });
        }
        catch (Exception ex)
        {
            // অন্য এক্সসেপশন হ্যান্ডলিং
            return View("Error", new ErrorViewModel { Message = "An unexpected error occurred." });
        }
    }
}

এখানে ProductNotFoundException যদি থ্রো হয়, তবে একটি কাস্টম মেসেজ ব্যবহারকারীকে দেখানো হবে, আর অন্য কোনো সাধারণ এক্সসেপশন হলে একটি জেনেরিক ত্রুটি বার্তা দেখানো হবে।


Error Pages কাস্টমাইজ করা

আপনি ASP.NET Core অ্যাপ্লিকেশনে বিভিন্ন ধরনের কাস্টম এরর পেজ তৈরি করতে পারেন, যেমন 404 Not Found বা 500 Internal Server Error। এই এরর পেজগুলো কাস্টমাইজ করা অ্যাপ্লিকেশন ব্যবহারকারীদের জন্য উন্নত এক্সপেরিয়েন্স তৈরি করে।

Custom 404 Error Page:

কাস্টম 404 Not Found পেজ তৈরির জন্য, আপনি UseStatusCodePagesWithReExecute middleware ব্যবহার করতে পারেন। এটি যখন কোনো পৃষ্ঠা পাওয়া না যায়, তখন একটি কাস্টম 404 পেজ রিডিরেক্ট করবে।

public class Startup
{
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }

        // 404 Error handling
        app.UseStatusCodePagesWithReExecute("/Home/StatusCode", "?code={0}");

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();
        
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
        });
    }
}

এখানে, যদি 404 ত্রুটি হয়, তাহলে /Home/StatusCode রুটে রিডিরেক্ট হবে এবং কোড প্যারামিটার হিসেবে ত্রুটির কোড পাঠানো হবে।

Custom Error View for 404

Views/Home/StatusCode.cshtml ফাইলটি তৈরি করুন:

@{
    ViewData["Title"] = "Error";
}

<h1>Error @ViewData["code"]</h1>
<p>The page you requested could not be found.</p>

এটি একটি কাস্টম 404 পেজ যা ইউজারকে একটি ত্রুটি কোড সহ বার্তা প্রদর্শন করবে।


সারাংশ

ASP.NET Core অ্যাপ্লিকেশনে Exception Handling এবং Error Pages কাস্টমাইজ করা খুবই গুরুত্বপূর্ণ, যা অ্যাপ্লিকেশনের স্থিতিশীলতা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করে। Global Error Handling এবং Action-based Error Handling এর মাধ্যমে অ্যাপ্লিকেশনের এক্সসেপশন হ্যান্ডলিং কাস্টমাইজ করা যায়। এছাড়া, 404 Error বা 500 Error পেজ কাস্টমাইজ করে আপনি একটি সুন্দর ব্যবহারকারী অভিজ্ঞতা প্রদান করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion