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

วิธีจัดการกับ ArithmeticException (ไม่ได้เลือก) ใน Java?


java.lang.ArithmeticException เป็นข้อยกเว้นที่ไม่ได้ตรวจสอบ ในชวา โดยปกติ เราจะเจอ java.lang.ArithmeticException:/ โดยศูนย์ ซึ่งเกิดขึ้นเมื่อพยายามหารสองตัวเลข และตัวเลขใน ตัวส่วนเป็นศูนย์ . ข้อยกเว้นทางคณิตศาสตร์ วัตถุอาจถูกสร้างขึ้นโดย JVM .

ตัวอย่างที่ 1

public class ArithmeticExceptionTest {
   public static void main(String[] args) {
      int a = 0, b = 10;
      int c = b/a;
      System.out.println("Value of c is : "+ c);
   }
}

ในตัวอย่างข้างต้น ArithmeticExeption เกิดขึ้นเนื่องจากค่าตัวส่วนเป็นศูนย์

  • java.lang.ArithmeticException :เกิดข้อยกเว้นโดย java ในระหว่างการดิวิชั่น
  • / โดยศูนย์ :เป็นข้อความรายละเอียดที่กำหนดให้กับ ArithmeticException ขณะสร้าง ArithmeticException วัตถุ .

ผลลัพธ์

Exception in thread "main" java.lang.ArithmeticException: / by zero
      at ArithmeticExceptionTest.main(ArithmeticExceptionTest.java:5)


วิธีจัดการ ArithmeticException

ให้เราจัดการ ArithmeticException ใช้ พยายามจับ บล็อค

  • ล้อมรอบข้อความสั่งที่สามารถโยน ArithmeticException กับ พยายามจับ บล็อก
  • เราสามารถ จับ ArithmeticException
  • ดำเนินการที่จำเป็นสำหรับโปรแกรมของเรา เนื่องจากการดำเนินการ ไม่ทำ ยกเลิก .

ตัวอย่าง2

public class ArithmeticExceptionTest {
   public static void main(String[] args) {
      int a = 0, b = 10 ;
      int c = 0;
      try {
         c = b/a;
      } catch (ArithmeticException e) {
         e.printStackTrace();
         System.out.println("We are just printing the stack trace.\n"+ "ArithmeticException is handled. But take care of the variable \"c\"");
      }
      System.out.println("Value of c :"+ c);
   }
}

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

ผลลัพธ์

We are just printing the stack trace.
ArithmeticException is handled. But take care of the variable "c"
Value of c is : 0
java.lang.ArithmeticException: / by zero
        at ArithmeticExceptionTest.main(ArithmeticExceptionTest.java:6)