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)