8.3 การสร้าง Exception แบบกำหนดเอง
8.3 การสร้าง Exception แบบกำหนดเอง
การสร้าง Exception แบบกำหนดเอง (Custom Exception) ในโปรแกรมเชิงวัตถุ (OOP) ช่วยให้โปรแกรมเมอร์สามารถระบุข้อผิดพลาดเฉพาะเจาะจงที่อาจเกิดขึ้นในระบบได้ง่ายขึ้น ซึ่งช่วยให้การจัดการข้อผิดพลาดมีประสิทธิภาพและง่ายต่อการบำรุงรักษา ตัวอย่างเช่น ถ้าเรามีระบบที่ต้องตรวจสอบข้อมูลสินค้าหรือการทำธุรกรรมที่ซับซ้อน การสร้าง Custom Exception ที่เฉพาะเจาะจงจะช่วยให้เราจัดการข้อผิดพลาดได้ดีขึ้น
ใน Java เราสามารถสร้าง Custom Exception ได้โดยการสืบทอด (extend) คลาส Exception หรือ RuntimeException ขึ้นอยู่กับว่าเราต้องการให้ข้อยกเว้นนี้เป็น Checked Exception หรือ Unchecked Exception
Checked Exception: ต้องจับหรือโยนข้อยกเว้นทุกครั้งที่เกิดข้อผิดพลาด โดยใช้ throws ในเมธอด
Unchecked Exception: สามารถเกิดข้อผิดพลาดโดยไม่ต้องจับหรือโยนข้อยกเว้น (extends RuntimeException)
// Custom Exception class
class InvalidAgeException extends Exception {
public InvalidAgeException(String message) {
super(message);
}
}
// Main class
public class CustomExceptionExample {
public static void main(String[] args) {
try {
checkAge(15);
} catch (InvalidAgeException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void checkAge(int age) throws InvalidAgeException {
if (age < 18) {
throw new InvalidAgeException("Age must be 18 or older.");
}
System.out.println("Age is valid.");
}
}
คำอธิบาย
Custom Exception Class (InvalidAgeException): เราสร้างคลาสที่สืบทอดจาก Exception และกำหนดคอนสตรัคเตอร์ที่รับข้อความผิดพลาด (message) เพื่อใช้ส่งข้อความเมื่อเกิดข้อยกเว้น
การใช้งาน Custom Exception: ในเมธอด checkAge() เราใช้ Custom Exception เพื่อตรวจสอบอายุ และโยนข้อยกเว้นเมื่ออายุน้อยกว่า 18
ใช้ Custom Exception เฉพาะเมื่อเกิดข้อผิดพลาดที่มีความสำคัญต่อระบบหรือเป็นสถานการณ์เฉพาะ
พยายามตั้งชื่อ Custom Exception ให้สื่อความหมายเข้าใจง่าย เช่น InvalidAgeException, InsufficientFundsException
ใส่ข้อความผิดพลาดที่อธิบายปัญหาได้ชัดเจน เพื่อง่ายต่อการดีบัก