Rumah Java javaTutorial Bagaimana untuk berurusan dengan ArrayIndexOutOfBoundsException di Java?

Bagaimana untuk berurusan dengan ArrayIndexOutOfBoundsException di Java?

Jun 25, 2023 am 10:23 AM
java array Pengendalian pengecualian

Java adalah bahasa pengaturcaraan yang sangat popular yang digunakan secara meluas dalam pelbagai bidang, terutamanya dalam pembangunan web. Dalam pengaturcaraan Java, pelbagai pengecualian mungkin berlaku, salah satunya ialah ArrayIndexOutOfBoundsException. Pengecualian ini sering berlaku semasa operasi tatasusunan dan dilemparkan apabila indeks tatasusunan berada di luar batas. Artikel ini akan memperkenalkan punca pengecualian ini dan cara mengendalikan serta mengelakkannya dalam program Java.

1. Punca ArrayIndexOutOfBoundsException
Kami tahu bahawa tatasusunan Java ialah koleksi data dari jenis yang sama, yang boleh digunakan untuk menyimpan dan mengendalikan data. Pengindeksan tatasusunan Java bermula dari 0, iaitu elemen pertama mempunyai indeks 0, elemen kedua mempunyai indeks 1, dan seterusnya. Jika anda cuba mengakses elemen yang indeksnya melebihi julat tatasusunan (iaitu, kurang daripada 0 atau lebih besar daripada atau sama dengan panjang tatasusunan), ArrayIndexOutOfBoundsException akan terhasil.

Sebagai contoh, kod berikut mentakrifkan tatasusunan integer dengan panjang 5. Apabila cuba mengakses elemen dengan indeks 5, pengecualian indeks di luar sempadan akan berlaku.

int[] numbers = new int[5];
System.out.println(numbers[5]); // 将抛出ArrayIndexOutOfBoundsException异常
Salin selepas log masuk

2. Mengendalikan ArrayIndexOutOfBoundsException
Apabila ArrayIndexOutOfBoundsException berlaku dalam program Java, pemprosesan yang sepadan perlu dijalankan dalam kod untuk mengelakkan ranap program atau ralat lain.

  1. Gunakan blok pernyataan cuba-tangkap untuk menangkap pengecualian
    Anda boleh menggunakan pernyataan cuba-tangkap untuk menangkap pengecualian ini untuk mengendalikan pengecualian ini. Contohnya:
int[] numbers = new int[5];
try {
    System.out.println(numbers[5]);
} catch (ArrayIndexOutOfBoundsException ex) {
    System.out.println("数组索引越界,错误信息:" + ex.getMessage());
}
Salin selepas log masuk

Dalam contoh ini, kami menggunakan blok pernyataan cuba-tangkap Apabila indeks tatasusunan diakses di luar sempadan, pengecualian akan dilemparkan dan ditangkap oleh blok pernyataan tangkapan. Dalam blok pernyataan tangkapan, kami mengeluarkan mesej ralat.

  1. Laraskan saiz dan julat indeks tatasusunan
    Cara lain untuk mengendalikan pengecualian ArrayIndexOutOfBoundsException ialah dengan melaraskan saiz tatasusunan atau julat indeks yang sepadan untuk mengelakkan indeks di luar sempadan. Sebagai contoh, anda boleh menukar saiz tatasusunan atau menukar julat indeks elemen tatasusunan seperti berikut:
int[] numbers = new int[5];
// 更改数组大小
numbers = Arrays.copyOf(numbers, 6);
// 更改数据索引范围
if (numbers.length > 5) {
    System.out.println(numbers[5]);
}
Salin selepas log masuk

Dalam contoh ini, kita mula-mula menukar saiz tatasusunan kepada 6 menggunakan kaedah copyOf kelas Tatasusunan. Kemudian, sebelum mengakses elemen tatasusunan pada indeks 5, kami menyemak sama ada panjang tatasusunan lebih besar daripada 5. Dengan cara ini anda boleh mengelak daripada membuang ArrayIndexOutOfBoundsException.

3. Elakkan ArrayIndexOutOfBoundsException
Selain mengendalikan ArrayIndexOutOfBoundsException, anda juga perlu mengelak ia dicetuskan dalam program Java. Berikut ialah beberapa cara untuk mengelakkan ArrayIndexOutOfBoundsException:

1 Periksa panjang tatasusunan
Sebelum mengakses elemen tatasusunan, anda harus menyemak panjang tatasusunan. Dalam contoh kod, kami menyemak sama ada panjang tatasusunan lebih besar daripada 5 menggunakan pernyataan if untuk mengelak daripada mengakses elemen dengan indeks 5.

if (numbers.length > 5) {
    System.out.println(numbers[5]);
}
Salin selepas log masuk
  1. Gunakan untuk-setiap gelung
    Menggunakan untuk-setiap gelung boleh mengelakkan masalah indeks tatasusunan di luar sempadan Apabila memproses satu siri elemen, anda tidak perlu mengakses indeks tatasusunan, anda hanya perlu menggunakan elemen semasa, seperti yang ditunjukkan di bawah:
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
    System.out.println(num);
}
Salin selepas log masuk
  1. Menggunakan kelas koleksi Java
    Kelas koleksi Java memastikan penyimpanan teratur dan carian data pantas, mengelakkan masalah indeks tatasusunan di luar batasan. Adalah disyorkan untuk menggunakan kelas koleksi Java seperti ArrayList dan LinkedList apabila anda perlu menyimpan berbilang elemen dan menambah, memadam atau bertanya elemen pada bila-bila masa.
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println(numbers.get(2)); // 输出3
Salin selepas log masuk

Kesimpulan
Dalam pengaturcaraan Java, ArrayIndexOutOfBoundsException ialah pengecualian yang sangat biasa. Untuk mengendalikan dan mengelakkan pengecualian ini, kita harus menyemak panjang tatasusunan, gunakan untuk setiap gelung dan gunakan kaedah seperti kelas koleksi Java. Jika ArrayIndexOutOfBoundsException berlaku, kita boleh mengendalikan pengecualian dengan menggunakan blok pernyataan cuba-tangkap dan melaraskan saiz tatasusunan dan julat indeks. Melalui kaedah ini, kami boleh mengurus program Java dengan lebih baik dan memastikan program berjalan seperti biasa.

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

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Penjana Nombor Rawak di Jawa Penjana Nombor Rawak di Jawa Aug 30, 2024 pm 04:27 PM

Panduan untuk Penjana Nombor Rawak di Jawa. Di sini kita membincangkan Fungsi dalam Java dengan contoh dan dua Penjana berbeza dengan contoh lain.

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Bagaimanakah anda mengendalikan pengecualian dengan berkesan dalam PHP (cuba, menangkap, akhirnya, membuang)? Bagaimanakah anda mengendalikan pengecualian dengan berkesan dalam PHP (cuba, menangkap, akhirnya, membuang)? Apr 05, 2025 am 12:03 AM

Dalam PHP, pengendalian pengecualian dicapai melalui percubaan, menangkap, akhirnya, dan membuang kata kunci. 1) blok percubaan mengelilingi kod yang boleh membuang pengecualian; 2) Blok tangkapan mengendalikan pengecualian; 3) Akhirnya Blok memastikan bahawa kod itu sentiasa dilaksanakan; 4) Lemparan digunakan untuk membuang pengecualian secara manual. Mekanisme ini membantu meningkatkan keteguhan dan mengekalkan kod anda.

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

See all articles