Skip to content
Siamcoder

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

java1 min read

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

ในภาษา Java เราใช้สิ่งที่เรียกว่า "การจัดการข้อผิดพลาดด้วยการโยนขึ้น (Exception Handling)" เพื่อจัดการกับข้อผิดพลาดที่อาจเกิดขึ้นในระหว่างการทำงานของโปรแกรม

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

public class Main {
public static void main(String[] args) {
try {
// โค้ดที่อาจเกิดข้อผิดพลาด
int result = divide(10, 0);
System.out.println("ผลลัพธ์: " + result);
} catch (ArithmeticException e) {
// จัดการข้อผิดพลาดที่เกิดขึ้น
System.out.println("เกิดข้อผิดพลาดในการหารด้วยศูนย์");
}
}
public static int divide(int dividend, int divisor) {
return dividend / divisor;
}
}`

ในตัวอย่างข้างต้น เราใช้คำสั่ง try เพื่อรอบคอบโค้ดที่อาจเกิดข้อผิดพลาด ในที่นี้เรามีการหารเลข 10 ด้วยศูนย์ ซึ่งเป็นการกระทำที่ผิดตามกฎการคณิตศาสตร์ ดังนั้นจะมีการเกิดข้อผิดพลาดแบบ ArithmeticException

เราใช้คำสั่ง catch เพื่อจัดการกับข้อผิดพลาดที่เกิดขึ้น ในที่นี้เราจัดการกับ ArithmeticException โดยแสดงข้อความที่บอกว่าเกิดข้อผิดพลาดในการหารด้วยศูนย์

การจัดการข้อผิดพลาดในภาษา Java ยังมีลักษณะอื่น ๆ เช่น finally และ throws ซึ่งให้คุณลองศึกษาต่อเพื่อเรียนรู้เพิ่มเติม สำหรับข้อความนี้เราจะเน้นการจัดการข้อผิดพลาดด้วยการใช้ try-catch เบื้องต้น

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

ตัวอย่างการใช้งาน finally ในภาษา Java:

public class Main {
public static void main(String[] args) {
try {
// โค้ดที่อาจเกิดข้อผิดพลาด
int result = divide(10, 0);
System.out.println("ผลลัพธ์: " + result);
} catch (ArithmeticException e) {
// จัดการข้อผิดพลาดที่เกิดขึ้น
System.out.println("เกิดข้อผิดพลาดในการหารด้วยศูนย์");
} finally {
// โค้ดที่จะถูกทำงานเสมอ
System.out.println("ทำงานในบล็อก finally");
}
}
public static int divide(int dividend, int divisor) {
return dividend / divisor;
}
}`

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

คุณสามารถใช้ finally เพื่อปิดทรัพยากรที่เปิดอยู่ เช่น การปิดไฟล์หรือการเชื่อมต่อฐานข้อมูล ที่จะต้องทำทุกครั้งที่โปรแกรมสิ้นสุดลง โดยทำงานทั้งในกรณีที่เกิดข้อผิดพลาดและไม่เกิดข้อผิดพลาด

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