การจัดการข้อผิดพลาดโดยการโยนข้อความผิดพลาดที่เหมาะสมนั้นสำคัญมาก MySQL มี Handler สำหรับจัดการข้อผิดพลาด เราสามารถประกาศ Handler ได้ด้วยไวยากรณ์ดังนี้:
ไวยากรณ์ของ Handler
DECLARE handler_action FOR condition_value statement;
ไวยากรณ์ข้างต้นแสดงว่าเราต้องใช้คำสั่ง DECLARE HANDLER เพื่อประกาศ Handler หากเงื่อนไขที่มีค่าตรงกับ condition_value MySQL จะรันคำสั่งและดำเนินการต่อหรือออกจากบล็อกโค้ดปัจจุบันขึ้นอยู่กับ action สิ่งสำคัญ 3 ประการในไวยากรณ์ข้างต้น:
Handler_action มี 2 ประเภท และสามารถรับค่าได้ดังนี้:
- CONTINUE - หาก handler_action เป็น 'CONTINUE' การดำเนินการของบล็อกโค้ดที่ครอบคลุมจะดำเนินต่อไป
- EXIT - หาก handler_action เป็น 'EXIT' การดำเนินการของบล็อกโค้ดที่ครอบคลุมจะสิ้นสุดลง
Condition_value ระบุเงื่อนไขเฉพาะหรือกลุ่มเงื่อนไขที่เปิดใช้งาน Handler สามารถรับค่าได้ดังนี้:
- ERROR CODE - condition_value สามารถเป็นรหัสข้อผิดพลาดของ MySQL
- SQLSTATE - condition_value สามารถเป็น SQLSTATE ได้
- SQLWARNING - condition_value สามารถเป็น SQLWARNING ได้
- NOTFOUND - condition_value สามารถเป็น NOTFOUND ได้
- SQLEXCEPTION - condition_value สามารถเป็น SQLEXCEPTION ได้
Statement สามารถเป็นคำสั่งง่ายหรือคำสั่งรวมที่ล้อมรอบด้วยคีย์เวิร์ด BEGIN และ END
ตัวอย่าง
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET got_error = 1;
ในตัวอย่างข้างต้น Handler หมายถึง หากเกิดข้อผิดพลาด ให้ตั้งค่าตัวแปร got_error เป็น 1 และดำเนินการต่อไป