บทช่วยสอนJava

Java HOME Java Intro Java เริ่มต้น Java Syntax ความคิดเห็นของ Java ตัวแปร Java Java Data Types การหล่อแบบจาวา ตัวดำเนินการ Java Java Strings Java Math Java Booleans Java If...Else Java Switch Java ในขณะที่ลูป Java สำหรับลูป Java Break/ต่อ Java Arrays

เมธอดของจาวา

เมธอดของจาวา พารามิเตอร์เมธอด Java วิธี Java โอเวอร์โหลด ขอบเขต Java Java Recursion

คลาส Java

Java OOP Java Classes/Objects คุณสมบัติคลาส Java วิธีการคลาส Java Java Constructors Java Modifiers การห่อหุ้มด้วยจาวา แพ็คเกจ Java / API มรดกจาวา Java Polymorphism Java Inner Classes Java Abstraction อินเทอร์เฟซ Java Java Enums อินพุตผู้ใช้ Java Java วันที่ Java ArrayList Java LinkedList Java HashMap Java HashSet Java Iterator คลาส Java Wrapper ข้อยกเว้น Java Java RegEx Java Threads จาวา แลมบ์ดา

การจัดการไฟล์ Java

ไฟล์ Java Java สร้าง/เขียนไฟล์ Java อ่านไฟล์ Java ลบไฟล์

Java ฮาวทู

เพิ่มสองตัวเลข

Java Reference

คีย์เวิร์ด Java เมธอด Java String Java Math Methods

ตัวอย่าง Java

ตัวอย่าง Java Java Compiler แบบฝึกหัด Java Java Quiz ใบรับรอง Java


ข้อยกเว้น Java - ลอง...Catch


ข้อยกเว้น Java

เมื่อรันโค้ด Java ข้อผิดพลาดต่างๆ อาจเกิดขึ้นได้: ข้อผิดพลาดในการเขียนโปรแกรมโดยโปรแกรมเมอร์ ข้อผิดพลาดเนื่องจากการป้อนข้อมูลที่ไม่ถูกต้อง หรือสิ่งที่ไม่คาดคิดอื่นๆ

เมื่อเกิดข้อผิดพลาด โดยปกติ Java จะหยุดและสร้างข้อความแสดงข้อผิดพลาด ศัพท์เทคนิคสำหรับสิ่งนี้คือ Java จะส่งข้อยกเว้น (โยนข้อผิดพลาด)


Java ลองและจับ

คำtryสั่งอนุญาตให้คุณกำหนดกลุ่มของรหัสที่จะทดสอบหาข้อผิดพลาดในขณะที่กำลังดำเนินการ

คำcatchสั่งนี้อนุญาตให้คุณกำหนดกลุ่มของรหัสที่จะดำเนินการ หากเกิดข้อผิดพลาดในบล็อกการลอง

tryและคำcatchหลักมาเป็นคู่:

ไวยากรณ์

try {
  //  Block of code to try
}
catch(Exception e) {
  //  Block of code to handle errors
}

พิจารณาตัวอย่างต่อไปนี้:

สิ่งนี้จะทำให้เกิดข้อผิดพลาด เนื่องจากไม่มีmyNumbers [10]

public class Main {
  public static void main(String[ ] args) {
    int[] myNumbers = {1, 2, 3};
    System.out.println(myNumbers[10]); // error!
  }
}

ผลลัพธ์จะเป็นดังนี้:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
        at Main.main(Main.java:4)

หากเกิดข้อผิดพลาดขึ้น เราสามารถใช้try...catchเพื่อตรวจจับข้อผิดพลาดและรันโค้ดเพื่อจัดการกับมัน:

ตัวอย่าง

public class Main {
  public static void main(String[ ] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    }
  }
}

ผลลัพธ์จะเป็น:

Something went wrong.

ในที่สุด

คำfinallyสั่งช่วยให้คุณสามารถรันโค้ดได้ after try...catchโดยไม่คำนึงถึงผลลัพธ์:

ตัวอย่าง

public class Main {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    } finally {
      System.out.println("The 'try catch' is finished.");
    }
  }
}

ผลลัพธ์จะเป็น:

Something went wrong.
The 'try catch' is finished.


คีย์เวิร์ดโยน

คำthrowสั่งช่วยให้คุณสร้างข้อผิดพลาดที่กำหนดเองได้

คำthrowสั่งนี้ใช้ร่วมกับ ประเภท ข้อยกเว้น มีข้อยกเว้นหลายประเภทใน Java: ArithmeticException, FileNotFoundException, ArrayIndexOutOfBoundsException, SecurityException, ฯลฯ:

ตัวอย่าง

โยนข้อยกเว้นถ้าอายุต่ำกว่า 18 (พิมพ์ "การเข้าถึงถูกปฏิเสธ") หากอายุ 18 ปีขึ้นไป ให้พิมพ์ "สิทธิ์การเข้าถึง":

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new ArithmeticException("Access denied - You must be at least 18 years old.");
    }
    else {
      System.out.println("Access granted - You are old enough!");
    }
  }

  public static void main(String[] args) {
    checkAge(15); // Set age to 15 (which is below 18...)
  }
}

ผลลัพธ์จะเป็น:

Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
        at Main.checkAge(Main.java:4)
        at Main.main(Main.java:12)

หากอายุ 20 ปี คุณจะไม่ได้รับข้อยกเว้น:

ตัวอย่าง

checkAge(20);

ผลลัพธ์จะเป็น:

Access granted - You are old enough!

ทดสอบตัวเองด้วยแบบฝึกหัด

ออกกำลังกาย:

ใส่ส่วนที่ขาดหายไปเพื่อจัดการกับข้อผิดพลาดในรหัสด้านล่าง

 {
  int[] myNumbers = {1, 2, 3};
  System.out.println(myNumbers[10]);
}  (Exception e) {
  System.out.println("Something went wrong.");
}