Dev to webs {Coding…}

บทเรียนฟรีด้านการพัฒนาซอฟต์แวร์ ที่ครอบคลุมเนื้อหาหลากหลาย ตั้งแต่การเขียนโค้ดพื้นฐานไปจนถึงเทคนิคขั้นสูง

บทที่ 2: การจัดการ Exceptions และการกำหนด Custom Error Pages

🔹 เกริ่นนำ

การจัดการข้อผิดพลาด (Exception Handling) เป็นส่วนสำคัญในการทำให้แอป Laravel ของคุณเสถียรและให้ประสบการณ์ที่ดีแก่ผู้ใช้ Laravel มีระบบ exception handler ที่อยู่ใน app/Exceptions/Handler.php ซึ่งสามารถดักจับและจัดการข้อผิดพลาดได้ทั้งในระดับแอปและระดับระบบ

นอกจากนี้ Laravel ยังรองรับการสร้างหน้าแสดงผลข้อผิดพลาดแบบกำหนดเอง (Custom Error Pages) ได้อย่างง่ายดาย เช่น หน้า 404, 500, หรือ 403

🔸 จัดการข้อผิดพลาดใน Handler

// app/Exceptions/Handler.php
public function render($request, Throwable $exception)
{
    if ($exception instanceof \App\Exceptions\CustomException) {
        return response()->view('errors.custom', [], 500);
    }

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

🔸 การสร้างหน้า Custom Error Pages

สร้างไฟล์ใน resources/views/errors/ เช่น:

  • 404.blade.php
  • 500.blade.php
  • 403.blade.php

ตัวอย่าง:

@extends('layouts.app')
@section('content')
    <h1>ไม่พบหน้าที่คุณต้องการ (404)</h1>
@endsection

🔸 การสร้าง Exception Class แบบกำหนดเอง

php artisan make:exception CustomException

💡 Laravel จะเลือกแสดง error page ตาม HTTP status code โดยอัตโนมัติ หากไม่มี จะ fallback ไปใช้ default page