Web Development Custom Error Pages তৈরি করা গাইড ও নোট

223

Custom Error Pages তৈরি করা এমভিসি ফ্রেমওয়ার্কে একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ব্যবহারকারীদের উন্নত অভিজ্ঞতা প্রদান করে এবং অ্যাপ্লিকেশনটির নিরাপত্তা ও পেশাদারিত্বকে বৃদ্ধি করে। যখন ব্যবহারকারী সাইটে কোনো ভুল URL প্রবেশ করে বা কোনো সার্ভার সমস্যা দেখা দেয়, তখন কাস্টম ত্রুটি পেজগুলি সঠিকভাবে উপস্থাপন করা উচিত।

এমভিসি ফ্রেমওয়ার্কে কাস্টম ত্রুটি পেজ তৈরি করার জন্য আপনাকে কিছু ধাপ অনুসরণ করতে হবে, যার মধ্যে ত্রুটি কোড হ্যান্ডলিং, কাস্টম পেজ ডিজাইন এবং রাউটিং কনফিগারেশন অন্তর্ভুক্ত রয়েছে।

১. Error Handling এবং Custom Error Pages


এমভিসি ফ্রেমওয়ার্কের মাধ্যমে, আপনি বিভিন্ন ত্রুটি কোডের জন্য কাস্টম ত্রুটি পেজ তৈরি করতে পারেন। কিছু সাধারণ HTTP ত্রুটি কোড হলো:

  • 404 (Not Found): যখন একটি পৃষ্ঠা পাওয়া যায় না।
  • 500 (Internal Server Error): সার্ভারে একটি অভ্যন্তরীণ ত্রুটি ঘটেছে।
  • 403 (Forbidden): অ্যাক্সেস অনুমতি নেই।

২. Laravel বা ASP.NET MVC তে কাস্টম ত্রুটি পেজ তৈরি করা


এমভিসি ফ্রেমওয়ার্কে কাস্টম ত্রুটি পেজ তৈরি করার পদ্ধতি Laravel এবং ASP.NET MVC এর জন্য আলাদা হতে পারে। নিচে উভয়ের জন্য পদ্ধতি দেয়া হলো।

১. Laravel এ কাস্টম Error Pages তৈরি করা


Laravel এ কাস্টম ত্রুটি পেজ তৈরি করার জন্য, আপনাকে resources/views/errors ডিরেক্টরিতে ত্রুটি পেজ তৈরি করতে হবে। উদাহরণস্বরূপ, যদি আপনি 404 ত্রুটি পেজ তৈরি করতে চান, তাহলে একটি 404.blade.php ফাইল তৈরি করুন।

steps:

  1. Error Pages তৈরি করুন: resources/views/errors ফোল্ডারে ত্রুটি পেজ তৈরি করুন।

    • 404.blade.php:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Page Not Found</title>
    </head>
    <body>
        <h1>Oops! Page Not Found.</h1>
        <p>The page you are looking for might have been removed or is temporarily unavailable.</p>
        <a href="{{ url('/') }}">Go to Home Page</a>
    </body>
    </html>
    
    • 500.blade.php:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Server Error</title>
    </head>
    <body>
        <h1>Sorry, something went wrong on our end.</h1>
        <p>We are working on fixing it.</p>
        <a href="{{ url('/') }}">Go to Home Page</a>
    </body>
    </html>
    
  2. Exception Handling কনফিগারেশন: Laravel এ app/Exceptions/Handler.php ফাইলে কাস্টম ত্রুটি পেজ কনফিগার করতে হবে।

    public function render($request, Throwable $exception)
    {
        if ($exception instanceof NotFoundHttpException) {
            return response()->view('errors.404', [], 404);
        }
    
        if ($exception instanceof \Illuminate\Database\QueryException) {
            return response()->view('errors.500', [], 500);
        }
    
        return parent::render($request, $exception);
    }
    

    এখানে, NotFoundHttpException এর মাধ্যমে 404 ত্রুটি এবং QueryException এর মাধ্যমে 500 ত্রুটি হ্যান্ডেল করা হচ্ছে।

২. ASP.NET MVC এ কাস্টম Error Pages তৈরি করা


ASP.NET MVC তে কাস্টম ত্রুটি পেজ তৈরি করতে হলে, প্রথমে Error Controller তৈরি করতে হবে এবং তারপর web.config ফাইলে কাস্টম ত্রুটি পেজ কনফিগার করতে হবে।

steps:

  1. Error Controller তৈরি করুন: একটি কন্ট্রোলার তৈরি করুন যা ত্রুটি পেজ হ্যান্ডল করবে।

    public class ErrorController : Controller
    {
        public ActionResult NotFound()
        {
            return View();
        }
    
        public ActionResult InternalServerError()
        {
            return View();
        }
    }
    
  2. Error Views তৈরি করুন: Views/Error/NotFound.cshtml এবং Views/Error/InternalServerError.cshtml ফাইল তৈরি করুন।

    • NotFound.cshtml:
    <h1>Oops! Page Not Found</h1>
    <p>We couldn't find the page you were looking for.</p>
    <a href="/">Go to Home</a>
    
    • InternalServerError.cshtml:
    <h1>Sorry! Something Went Wrong</h1>
    <p>There was an error processing your request. Please try again later.</p>
    <a href="/">Go to Home</a>
    
  3. web.config ফাইলে Error Handling কনফিগারেশন:

    <system.web>
        <customErrors mode="On" defaultRedirect="~/Error/InternalServerError">
            <error statusCode="404" redirect="~/Error/NotFound" />
            <error statusCode="500" redirect="~/Error/InternalServerError" />
        </customErrors>
    </system.web>
    

    এখানে, 404 ত্রুটি হলে NotFound পেজ এবং 500 ত্রুটি হলে InternalServerError পেজে রিডাইরেক্ট হবে।


৩. Global Error Handling


এছাড়াও, আপনি global error handling ব্যবহার করে আপনার অ্যাপ্লিকেশন থেকে সমস্ত ত্রুটি কেন্দ্রীভূতভাবে হ্যান্ডল করতে পারেন।

Laravel এ Global Error Handling:

Laravel এ, আপনি app/Exceptions/Handler.php ফাইলের মাধ্যমে গ্লোবাল ত্রুটি হ্যান্ডলিং করতে পারেন।

public function render($request, Throwable $exception)
{
    if ($exception instanceof \Illuminate\Database\QueryException) {
        return response()->view('errors.500', [], 500);
    }

    if ($exception instanceof NotFoundHttpException) {
        return response()->view('errors.404', [], 404);
    }

    return parent::render($request, $exception);
}

ASP.NET MVC তে Global Error Handling:

ASP.NET MVC তে, Application_Error মেথড ব্যবহার করে গ্লোবাল ত্রুটি হ্যান্ডলিং করা যায়।

protected void Application_Error()
{
    Exception exception = Server.GetLastError();
    HttpException httpException = exception as HttpException;

    if (httpException != null)
    {
        int httpCode = httpException.GetHttpCode();
        if (httpCode == 404)
        {
            Response.Redirect("/Error/NotFound");
        }
        else if (httpCode == 500)
        {
            Response.Redirect("/Error/InternalServerError");
        }
    }
}

সার্বিকভাবে


Custom Error Pages তৈরি করার মাধ্যমে, আপনি ব্যবহারকারীদের জন্য একটি প্রফেশনাল এবং ব্যবহারকারী বান্ধব অভিজ্ঞতা প্রদান করতে পারেন। এমভিসি ফ্রেমওয়ার্কে কাস্টম ত্রুটি পেজ তৈরি করার জন্য রাউট কনফিগারেশন, কন্ট্রোলার এবং কাস্টম ভিউ তৈরি করা প্রয়োজন। এভাবে, ব্যবহারকারীদের ত্রুটি বা সমস্যা সম্পর্কে সঠিকভাবে অবহিত করা সম্ভব হয় এবং তাদের সাইটের অভিজ্ঞতা উন্নত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...