อยากทราบว่าจะดึง Error Exception ของ Catch ยังไงหรอครับ

$exception->getCode() มันได้ 0 ตลอดเลยครับ

สามารถเขียนดักว่าตัว exception เป็น instance ของ exception class ไหน

try {
    $charge = OmiseCharge::create([...]);
} catch (Exception $e) {
	if ($e instanceof OmiseAuthenticationFailureException) {
		// authentication failed
	}
}

หรือถ้าต้องการดักแบบ multiple case จะเขียนเป็น switch case ก็ได้ครับ

try {
    $charge = OmiseCharge::create([...]);
} catch (Exception $e) {
    switch(true) {  
        case $e instanceof OmiseAuthenticationFailureException:
            // authentication failed
            break;

        case $e instanceof OmiseUsedTokenException:
            // token was already used
            break;

        default:
            // default case
            break;
    }
}

ถ้าโค้ดด้านบนไม่ตรงกับการใช้งานที่คุณ @ehohpo กำลังทดลอง implement หรือมีข้อสงสัยอะไรเพิ่มเติม สามารถสอบถามได้เลยนะครับ :smiley:

1 Like

:+1: ขอบคุณมากเลยครับเดี๋ยวขอลองดูก่อนนะครับ

สอบถามเพิ่มเติมหน่อยครับ

ผมลองทำแบบนี้ดูแล้ว มันเข้า default: ครับทั้ง ๆ ที่ผมลอง get error message มาได้ “token was already used” อันนี้ครับ พอจะมีวิธีที่ทำให้แสดง Error แบบตัวอย่างมั้ยครับ

ผมรบกวนขอดู code ที่เขียนเอาไว้ได้ไหมครับ
ผมลองเทสรัน code ด้านบนดูแล้ว มันดักเข้าเงื่อนไขปรกตินะครับ