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

Làm cách nào để xử lý ArrayStoreException (bỏ chọn) trong Java?

java.lang.ArrayStoreException không được kiểm tra ngoại lệ và nó có thể xảy ra khi chúng ta cố gắng lưu trữ một đối tượng của một kiểu trong một mảng các đối tượng thuộc kiểu khác. Thông thường, người ta sẽ bắt gặp java.lang.ArrayStoreException:java.lang.Integer xảy ra khi cố gắng lưu trữ một số nguyên trong một mảng có kiểu khác như mảng Chuỗi hoặc mảng thực, v.v.

Ví dụ1

public class ArrayStoreExceptionTest {
   public static void main(String[] args) {
      Object[] names = new Float[2];
      names[1] = new Integer(2);
   }
}

Đầu ra

Exception in thread "main" java.lang.ArrayStoreException: java.lang.Integer
        at ArrayStoreExceptionTest.main(ArrayStoreExceptionTest.java:4)

Trong chương trình trên, java.lang.ArrayStoreException:java.lang.Integer xảy ra

  • java.lang.ArrayStoreException: Ngoại lệ do ngôn ngữ java ném ra khi chúng tôi cố gắng lưu trữ một đối tượng của java.lang.Integer trong một mảng java.lang.Float.
  • java.lang.Integer: Số nguyên là kiểu đối tượng đã được cố gắng lưu trữ một mảng có kiểu khác.

Cách xử lý ArrayStoreException

Chúng tôi có thể xử lý ArrayStoreException bằng cách sử dụng thử và nắm bắt khối.

  • Bao quanh các câu lệnh có thể ném ArrayStoreException với thử và nắm bắt khối.
  • Chúng tôi có thể Nắm bắt ArrayStoreException .
  • Thực hiện hành động cần thiết cho chương trình của chúng tôi, vì chúng tôi đang xử lý trường hợp ngoại lệ và việc thực thi sẽ không bị hủy bỏ.

Ví dụ2

public class ArrayStoreExceptionTest {
   public static void main(String[] args) {
      Object[] names = new Float[2];
      try {
         names[1] = new Integer(2);
      } catch (ArrayStoreException e) {
         e.printStackTrace();
         System.out.println("ArrayStoreException is handled");
      }
      System.out.println("Continuing with the statements after try and catch blocks");
   }
}

Đầu ra

ArrayStoreException is handled
Continuing with the statements after try and catch blocks
java.lang.ArrayStoreException: java.lang.Integer
      at ArrayStoreExceptionTest.main(ArrayStoreExceptionTest.java:5)


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