Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để xử lý ArithmeticException (bỏ chọn) trong Java?

java.lang.ArithmeticException là một ngoại lệ chưa được kiểm tra trong Java. Thông thường, người ta sẽ bắt gặp java.lang.ArithmeticException:/ bằng không xảy ra khi cố gắng chia hai số và số ở mẫu số là 0 . ArithmeticException các đối tượng có thể được tạo bởi JVM .

Ví dụ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);
   }
}

Trong ví dụ trên, ArithmeticExeption xảy ra do giá trị của mẫu số bằng không.

  • java.lang.ArithmeticException :Ngoại lệ do java ném ra trong quá trình phân chia.
  • / bằng 0 :là thông báo chi tiết được cung cấp cho ArithmeticException trong khi tạo ArithmeticException đối tượng .

Đầu ra

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


Cách xử lý ArithmeticException

Hãy để chúng tôi xử lý ArithmeticException bằng cách sử dụng thử và nắm bắt khối.

  • Xung quanh các câu lệnh có thể ném ArithmeticException với thử và nắm bắt khối.
  • Chúng tôi có thể Nắm bắt ArithmeticException
  • Thực hiện hành động cần thiết cho chương trình của chúng tôi, vì việc thực thi không hủy bỏ .

Ví dụ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);
   }
}

Khi một ngoại lệ xảy ra, việc thực thi rơi vào catch khối từ thời điểm xảy ra một ngoại lệ. Nó thực thi câu lệnh trong khối catch và tiếp tục với tuyên bố hiện tại sau khi thử và nắm bắt khối.

Đầu ra

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)