Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่างข้อยกเว้นและข้อผิดพลาดใน Java


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

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

ซีเนียร์ เลขที่ คีย์ ข้อผิดพลาด ข้อยกเว้น
1
Type
จัดเป็นประเภทที่ไม่ได้เลือก
จัดว่าตรวจสอบแล้วและไม่ได้เลือก
2
Package
มันเป็นของ java.lang.error
มันเป็นของ java.lang.Exception
3
กู้คืนได้/ไม่สามารถกู้คืนได้
กู้คืนไม่ได้
คืนได้
4
ไม่สามารถเกิดขึ้นได้ในเวลาคอมไพล์
มันสามารถเกิดขึ้นได้ในขณะรันไทม์คอมไพล์ไทม์ทั้งสองอย่าง
5
ตัวอย่าง
OutOfMemoryError ,IOError
NullPointerException , SqlException

ตัวอย่างข้อผิดพลาด

public class ErrorExample {
   public static void main(String[] args){
      recursiveMethod(10)
   }
   public static void recursiveMethod(int i){
      while(i!=0){
         i=i+1;
         recursiveMethod(i);
      }
   }
}

ผลลัพธ์

Exception in thread "main" java.lang.StackOverflowError
   at ErrorExample.ErrorExample(Main.java:42)

ตัวอย่างข้อยกเว้น

public class ExceptionExample {
   public static void main(String[] args){
      int x = 100;
      int y = 0;
      int z = x / y;
   }
}

ผลลัพธ์

java.lang.ArithmeticException: / by zero
   at ExceptionExample.main(ExceptionExample.java:7)