🔹 เกริ่นนำ
การจัดการข้อผิดพลาด (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