Java Academy · บทเรียน

ข้อยกเว้นแบบตรวจสอบและไม่ตรวจสอบ

ทำความเข้าใจความแตกต่างระหว่างข้อยกเว้นแบบตรวจสอบและไม่ตรวจสอบใน Java

บทเรียน 2 จาก 38 ขั้นตอน

ข้อยกเว้นแบบตรวจสอบและไม่ตรวจสอบ เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

บทนำ

ข้อยกเว้นใน Java แบ่งเป็นสองกลุ่ม ได้แก่ ข้อยกเว้นที่ต้องตรวจสอบ และ ข้อยกเว้นที่ไม่ต้องตรวจสอบ การทราบความแตกต่างช่วยให้คุณออกแบบเมธอดได้อย่างถูกต้อง

ข้อยกเว้นที่ต้องตรวจสอบ

ข้อยกเว้นที่ต้องตรวจสอบ ขยายต่อจาก ข้อยกเว้น (แต่ไม่ใช่ RuntimeException) คอมไพเลอร์จะบังคับให้คุณจัดการหรือประกาศข้อยกเว้นเหล่านี้ด้วย throws

โค้ด: IOException ที่ต้องตรวจสอบ

IOException เป็นข้อยกเว้นที่ต้องตรวจสอบ คุณต้องดักจับหรือประกาศข้อยกเว้นนี้ไว้ในลายเซ็นของเมธอด

public class Main {
  public static void main(String[] args) {
    try {
      java.io.FileReader fr = new java.io.FileReader("missing.txt"); // checked exception
      fr.read();
      fr.close();
    } catch (java.io.IOException e) {
      System.out.println("Handled IOException: " + e.getMessage());
    }
  }
}

ข้อยกเว้นที่ไม่ต้องตรวจสอบ

ข้อยกเว้นที่ไม่ต้องตรวจสอบ ขยายต่อจาก RuntimeException คอมไพเลอร์ไม่บังคับให้จัดการข้อยกเว้นเหล่านี้ ตัวอย่างเช่น NullPointerException และ ArithmeticException

โค้ด: NPE ที่ไม่ต้องตรวจสอบ

NullPointerException เป็นข้อยกเว้นที่ไม่ต้องตรวจสอบ คุณสามารถดักจับได้ แต่คอมไพเลอร์จะไม่บังคับให้ทำเช่นนั้น

public class Main {
  public static void main(String[] args) {
    String s = null;
    try {
      System.out.println(s.length()); // unchecked exception
    } catch (NullPointerException e) {
      System.out.println("Caught NullPointerException");
    }
  }
}

โค้ด: การประกาศข้อยกเว้น

ข้อยกเว้นที่ต้องตรวจสอบสามารถประกาศได้ด้วยคำสั่งประกาศข้อยกเว้น ผู้เรียกต้องจัดการหรือส่งต่อข้อยกเว้นเหล่านี้

public class Main {
  static void risky() throws java.io.IOException {
    throw new java.io.IOException("I/O problem");
  }
  public static void main(String[] args) {
    try {
      risky();
    } catch (java.io.IOException e) {
      System.out.println("Handled in main: " + e.getMessage());
    }
  }
}

ตรวจสอบข้อยกเว้นที่ต้องตรวจสอบเทียบกับที่ไม่ต้องตรวจสอบ

คำถามตรวจสอบอย่างรวดเร็ว: ข้อใดถูกต้องเกี่ยวกับข้อยกเว้นที่ต้องตรวจสอบและที่ไม่ต้องตรวจสอบ

ทบทวน

ทบทวน: ข้อยกเว้นที่ต้องตรวจสอบ เช่น IOException ต้องประกาศหรือจัดการ ส่วนข้อยกเว้นที่ไม่ต้องตรวจสอบ เช่น RuntimeException จะจัดการหรือไม่ก็ได้

เริ่มต้นได้ฟรี

เรียนรู้ Java ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
104
บทเรียน
374

คำถามที่พบบ่อย

บทเรียน “ข้อยกเว้นแบบตรวจสอบและไม่ตรวจสอบ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ข้อยกเว้นแบบตรวจสอบและไม่ตรวจสอบ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ข้อยกเว้นแบบตรวจสอบและไม่ตรวจสอบ”

ทำความเข้าใจความแตกต่างระหว่างข้อยกเว้นแบบตรวจสอบและไม่ตรวจสอบใน Java คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน

บทเรียน “ข้อยกเว้นแบบตรวจสอบและไม่ตรวจสอบ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. try/catch/finally
  2. ข้อยกเว้นแบบตรวจสอบและไม่ตรวจสอบ
  3. การอ่านสแตกเทรซ
← กลับไปที่ Java Academy