Skip to content
Siamcoder

การจัดการข้อผิดพลาด (Error Handling)

javascript1 min read

การจัดการข้อผิดพลาด (Error Handling)

ในการเขียนโปรแกรมด้วยภาษา JavaScript การจัดการข้อผิดพลาดเป็นส่วนสำคัญในการพัฒนาแอปพลิเคชัน การจัดการข้อผิดพลาดช่วยให้เราสามารถจัดการกับข้อผิดพลาดที่อาจเกิดขึ้นระหว่างการรันโปรแกรมได้อย่างเหมาะสม และป้องกันการหยุดทำงานของโปรแกรมอย่างไม่คาดคิด

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

ตัวอย่างการจัดการข้อผิดพลาดใน JavaScript:

try {
// โค้ดที่อาจเกิดข้อผิดพลาด
const result = 10 / 0; // โปรดสังเกตุว่าเรากำลังหารด้วย 0 ซึ่งจะเกิดข้อผิดพลาด
console.log("ผลลัพธ์:", result); // ไม่ถูกทำงานเนื่องจากเกิดข้อผิดพลาด
} catch (error) {
// จัดการกับข้อผิดพลาดที่เกิดขึ้น
console.log("เกิดข้อผิดพลาด:", error.message); // แสดงข้อความของข้อผิดพลาด
} finally {
// โค้ดที่จะทำงานไม่ว่าจะมีข้อผิดพลาดหรือไม่ก็ตาม
console.log("สิ้นสุดการทำงาน");
}`

ในตัวอย่างข้างต้น เราใช้ try เพื่อลองทำงานโค้ดที่อาจเกิดข้อผิดพลาด ในที่นี้เรากำลังหารด้วย 0 ซึ่งจะทำให้เกิดข้อผิดพลาด "Division by zero" โค้ดที่เราต้องการให้ทำงานถูกต้องหลังจากนั้นจะอยู่ในส่วน catch เพื่อรับและจัดการกับข้อผิดพลาดที่เกิดขึ้น และสุดท้ายจะมีส่วน finally เพื่อทำงานทั้งหมดในทุกสถานการณ์

การจัดการข้อผิดพลาดใน JavaScript ช่วยให้เราสามารถเพิ่มความเสถียรให้กับโปรแกรมของเรา และสามารถสร้างระบบจัดการข้อผิดพลาดที่ช่วยให้เราตรวจสอบและแก้ไขข้อผิดพลาดได้อย่างมีประสิทธิภาพ

อีกวิธีหนึ่งในการจัดการข้อผิดพลาดใน JavaScript คือการสร้างและใช้งานตัวอักษรเฉพาะสำหรับข้อผิดพลาดที่กำหนดเอง (Custom Error) เพื่อให้เหมาะสมกับแอปพลิเคชันที่เรากำลังพัฒนา

ตัวอย่างการสร้างและใช้งาน Custom Error ใน JavaScript:

// สร้างคลาสข้อผิดพลาดเฉพาะสำหรับการหารด้วยศูนย์
class DivisionByZeroError extends Error {
constructor(message) {
super(message);
this.name = "DivisionByZeroError";
}
}
// ฟังก์ชันที่ต้องการทำการหาร
function divide(dividend, divisor) {
if (divisor === 0) {
throw new DivisionByZeroError("ไม่สามารถหารด้วยศูนย์ได้");
}
return dividend / divisor;
}
// ลองใช้งานฟังก์ชัน divide
try {
const result = divide(10, 0); // โปรดสังเกตุว่าเรากำลังหารด้วย 0 ซึ่งจะเกิดข้อผิดพลาด
console.log("ผลลัพธ์:", result);
} catch (error) {
if (error instanceof DivisionByZeroError) {
console.log("เกิดข้อผิดพลาด:", error.message); // แสดงข้อความของข้อผิดพลาดเฉพาะสำหรับการหารด้วยศูนย์
} else {
console.log("เกิดข้อผิดพลาด:", error);
}
}`

ในตัวอย่างข้างต้น เราสร้างคลาส DivisionByZeroError ที่สืบทอดมาจาก Error และกำหนดชื่อ DivisionByZeroError เพื่อระบุประเภทของข้อผิดพลาดที่เกิดขึ้น เราใช้ฟังก์ชัน throw เพื่อสร้างและส่งข้อผิดพลาดเมื่อเงื่อนไขเป็นจริง

ในบล็อก catch เราตรวจสอบประเภทของข้อผิดพลาดที่เกิดขึ้น ถ้าเป็น DivisionByZeroError เราจะแสดงข้อความของข้อผิดพลาดเฉพาะสำหรับการหารด้วยศูนย์ ในกรณีอื่นๆ เราจะแสดงข้อผิดพลาดทั่วไปที่เกิดขึ้น

การใช้งาน Custom Error ช่วยให้เราสามารถกำหนดและจัดการกับข้อผิดพลาดที่เกิดขึ้นในแอปพลิเคชันของเราได้อย่างยืดหยุ่นและมีประสิทธิภาพ