Rumah  >  Artikel  >  Java  >  Bagaimana untuk berurusan dengan ArrayStoreException di Java?

Bagaimana untuk berurusan dengan ArrayStoreException di Java?

WBOY
WBOYasal
2023-06-25 08:02:501580semak imbas

ArrayStoreException dalam Java ialah pengecualian masa jalan yang dilemparkan apabila cuba menyimpan objek ke dalam tatasusunan yang tidak serasi. Dalam artikel ini, kami akan memperincikan punca ArrayStoreException, cara mengelakkannya, dan cara menanganinya.

  1. Sebab pengecualian

Tatasusunan Java ialah bekas bersaiz tetap yang digunakan untuk menyimpan elemen jenis tertentu. ArrayStoreException akan dilemparkan apabila cuba menambah elemen jenis yang tidak serasi pada tatasusunan.

Sebagai contoh, kod berikut akan mencipta tatasusunan integer dan cuba menyimpan rentetan ke dalam tatasusunan:

int[] arr = new int[5];
arr[0] = "hello";

Ini akan menyebabkan pengecualian ArrayStoreException dilemparkan kerana kami cuba menyimpan rentetan ke dalam tatasusunan integer.

  1. Elakkan ArrayStoreException

Untuk mengelakkan ArrayStoreException, kita perlu memastikan bahawa elemen dalam tatasusunan adalah jenis yang sama dengan objek yang kita cuba simpan.

Sebagai contoh, jika kita ingin menyimpan beberapa rentetan, kita harus mencipta tatasusunan rentetan:

String[] arr = new String[5];
arr[0] = "hello";

Pada ketika ini, kita cuba menyimpan rentetan ke dalam tatasusunan rentetan, jadi pengecualian ArrayStoreException tidak dibuang.

  1. Mengendalikan ArrayStoreException

Jika kita tidak dapat mengelakkan ArrayStoreException dalam program kita, maka kita perlu mengendalikannya dengan sewajarnya. Biasanya, kita boleh menggunakan blok pernyataan cuba-tangkap untuk mengendalikan pengecualian.

Sebagai contoh, kod berikut akan mencipta tatasusunan integer dan cuba menyimpan rentetan ke dalam tatasusunan. Disebabkan ketidakserasian taip, ia akan membuang ArrayStoreException:

try {
    int[] arr = new int[5];
    arr[0] = "hello";
} catch(ArrayStoreException ex) {
    System.out.println("Caught ArrayStoreException: " + ex.getMessage());
}

Dalam kes ini, ArrayStoreException ditangkap dan mesej pengecualian dikeluarkan.

Selain itu, kita boleh menggunakan operator instanceof untuk menyemak jenis objek untuk mengelakkan lontaran ArrayStoreException. Sebagai contoh, kod berikut mencipta tatasusunan jenis Objek dan menyimpan rentetan ke dalam tatasusunan. Sebelum menyimpan, kami menyemak sama ada jenis objek itu serasi:

Object[] arr = new Object[5];
if("hello" instanceof String) {
    arr[0] = "hello";
} else {
    // handle error
}

Dalam kes ini, kami menggunakan operator instanceof untuk menyemak sama ada rentetan adalah jenis yang serasi. Jika ia adalah jenis yang serasi, rentetan itu disimpan. Jika tidak, kita boleh mengendalikan ralat atau membuang pengecualian.

  1. Ringkasan

ArrayStoreException dilemparkan kerana percubaan untuk menyimpan objek daripada jenis yang tidak serasi ke dalam tatasusunan. Untuk mengelakkan pengecualian ini, kita mesti memastikan bahawa jenis elemen tatasusunan adalah sama dengan jenis objek yang kita cuba simpan. Jika pengecualian tidak dapat dielakkan, anda boleh menggunakan blok cuba-tangkap atau pengendali instanceof untuk mengendalikannya. Dalam mana-mana kes, kita mesti mengendalikan pengecualian dengan berhati-hati supaya tidak menjejaskan kestabilan dan kebolehpercayaan program.

Atas ialah kandungan terperinci Bagaimana untuk berurusan dengan ArrayStoreException di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn