Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

การจัดการข้อยกเว้น (Exception Handling) ใน PHP


ข้อยกเว้น (Exception) คือปัญหาที่เกิดขึ้นระหว่างการทำงานของโปรแกรม เมื่อเกิดข้อยกเว้น โค้ดหลังจากคำสั่งที่ทำให้เกิดข้อยกเว้นจะไม่ถูกประมวลผล และ PHP จะพยายามหาบล็อก catch แรกที่ตรงกัน หากไม่มีการจับข้อยกเว้น PHP จะแสดง Fatal Error พร้อมข้อความ "Uncaught Exception"

ไวยากรณ์

try { 
    print "this is our try block"; 
    throw new Exception(); 
} catch (Exception $e) { 
    print "something went wrong, caught yah! \n"; 
} finally { 
    print "this part is always executed"; 
}

ตัวอย่าง

<?php 
function printdata($data) { 
    try { 
        // ถ้า var เท่ากับ 6 จะเข้าเงื่อนไข if
        if($data == 6) { 
            // ถ้า var เท่ากับ 0 จะโยนข้อยกเว้น
            throw new Exception('Number is six.'); 
            echo "\n After throw (It will never be executed)"; 
        } 
    } 
    // เมื่อข้อยกเว้นถูกโยนจาก try block
    catch(Exception $e){ 
        echo "\n Exception Caught", $e->getMessage(); 
    } 
    // บล็อกนี้จะทำงานเสมอ
    finally{ 
        echo "\n Final block will be always executed"; 
    } 
} 
// ไม่มีข้อยกเว่นเกิดขึ้นที่นี่
printdata(0); 
// ข้อยกเว่นจะเกิดขึ้นที่นี่
printdata(6); 
?>

ผลลัพธ์

Final block will be always executed Exception CaughtNumber is six. Final block will be always executed

หมายเหตุ

เพื่อจัดการข้อยกเว่น โค้ดต้องอยู่ในบล็อก try แต่ละ try ต้องมี catch อย่างน้อยหนึ่งบล็อก สามารถใช้ catch หลายบล็อกเพื่อจับคลาสข้อยกเว่นที่ต่างกันได้