Rumah  >  Artikel  >  Java  >  Apakah pengecualian biasa dan pengendaliannya dalam program Java?

Apakah pengecualian biasa dan pengendaliannya dalam program Java?

王林
王林ke hadapan
2023-06-03 22:16:421462semak imbas

1. Pengecualian biasa dalam JDK

1. Carta ringkasan pengecualian biasa

2

Kelas Boleh Lempar mempunyai dua subkelas langsung:

(1) Pengecualian: Masalah boleh ditangkap

(2) Ralat: Ralat sistem , biasanya dikendalikan oleh JVM

3. Kategori pengecualian yang ditangkap

(1) Pengecualian semak: Kelas pengecualian yang diperoleh daripada Pengecualian, mesti ditangkap atau diisytiharkan untuk dibuang semula Daripada

(2) Pengecualian masa jalan: merujuk kepada kelas pengecualian yang diperoleh daripada RuntimeException. Objek pengecualian jenis ini boleh dilemparkan pada bila-bila masa menggunakan pernyataan lempar throw new ArithmeticException(...);

2. Sebab pengecualian

1. Pengguna memasukkan data haram.

2. Fail yang hendak dibuka tidak wujud.

3. Komunikasi rangkaian diputuskan

4 limpahan memori JVM

3. Beberapa pengecualian biasa dalam program java dan sebab pengecualian ini

1. java.lang.NullpointerException (NullpointerException)

Sebab biasa untuk pengecualian ini ialah terdapat penunjuk nol dalam program, iaitu panggilan yang tidak dimulakan adalah objek yang dibuat atau tidak wujud.

Kod ini sering muncul dalam penciptaan objek dan panggilan tatasusunan, seperti apabila objek tidak dimulakan atau laluan imej salah. Penunjuk nol yang muncul dalam kod tatasusunan

mengelirukan pengamulaan tatasusunan dengan pengamulaan elemen tatasusunan. Permulaan tatasusunan adalah untuk memperuntukkan ruang kepada tatasusunan, dan pemulaan

bagi elemen tatasusunan ialah untuk memberikan nilai awal kepada elemen dalam tatasusunan

2. java.lang.ClassNotFoundException (kelas yang ditentukan tidak wujud)

Punca: Apabila cuba menukar data jenis String kepada jenis angka yang ditentukan, tetapi rentetan tidak memenuhi keperluan data berangka, ini pengecualian dilemparkan

Selalunya. Apabila menukar data daripada jenis Rentetan kepada jenis angka, contohnya, operasi menukar "123456" kepada jenis angka adalah boleh dilaksanakan. Walau bagaimanapun, jika data jenis String mengandungi

aksara bukan angka, seperti 123*56, pengecualian akan berlaku apabila menukar kepada jenis angka. Sistem akan menangkap pengecualian ini dan mengendalikannya

3 java.lang.ClassNotFoundExceptio (kelas yang dinyatakan tidak wujud)

Punca masalah ini terletak pada kelas Nama dan laluan yang salah boleh menyebabkan pengecualian apabila program cuba memuatkan kelas melalui rentetan. Contohnya:

Pengecualian berlaku apabila memanggil Class.forName(), atau memanggil ClassLoad's finaSystemClass(), atau LoadClass()

4, java.lang.IndexOutOfBoundsException (di bawah tatasusunan Pengecualian di luar sempadan subskrip)

Punca: Semak sama ada nilai subskrip tatasusunan atau rentetan yang dipanggil dalam atur cara melebihi julat tatasusunan Secara umumnya, ia tidak mudah untuk memaparkan panggilan tatasusunan

Ralat sedemikian, tetapi panggilan tersirat mungkin salah Terdapat satu lagi situasi di mana panjang tatasusunan yang ditakrifkan dalam atur cara ditentukan oleh beberapa kaedah tertentu dan tidak diisytiharkan terlebih dahulu oleh

.

, pada masa ini anda boleh menyemak panjang tatasusunan terlebih dahulu untuk mengelakkan pengecualian ini

5 java.lang.IllegalArgumentException (ralat parameter kaedah)

Sebagai contoh, g.setColor (int red, int green, int blue) Tiga nilai dalam kaedah ini, jika terdapat lebih daripada 255, pengecualian ini akan berlaku Jika pengecualian ini wujud dalam program, anda perlu menyemak kaedah panggilan Adakah terdapat ralat dalam lulus parameter atau nilai parameter

6.IllegalAccessException (tiada kebenaran akses)

Apabila program mahu memanggil kelas. , tetapi semasa Pengecualian ini akan berlaku jika kaedah tidak mempunyai hak akses kepada kelas. Jika Pakej digunakan dalam program

pengecualian ini mungkin berlaku

7 java.lang.ArithmeticException (pengecualian operasi matematik)

Pengecualian ini berlaku. apabila operasi seperti bahagi dengan sifar berlaku dalam operasi matematik.

8. java.lang.ClassCastException (pengecualian penukaran jenis data)

Apabila cuba menurunkan penukaran pada objek, tetapi objek tidak boleh ditukar Atau tidak boleh ditukar kepada contoh subkelasnya, pengecualian ini akan berlaku

9. java.lang.FileNotFoundException (fail tidak dijumpai pengecualian)

Apabila atur cara membuka This exception. akan dilemparkan apabila membaca atau menulis fail yang tidak wujud. Pengecualian ini dilemparkan oleh pengisytiharan pembina bagi FileInputStream, FileOutputStream,

RandomAccessFile Walaupun fail yang dikendalikan wujud, ia tidak boleh diakses atas sebab tertentu, seperti membuka

dengan baca sahaja. kebenaran. fail dan tulis data kepadanya, kaedah pembinaan di atas masih akan menyebabkan pengecualian

10, java.lang.ArrayStoreException (pengecualian storan tatasusunan)

Apabila mencuba untuk menukar jenis Apabila objek jenis yang tidak serasi disimpan dalam tatasusunan Object[], pengecualian akan dilemparkan

11 java.lang.NoSuchMethodException (tiada pengecualian wujud dalam kaedah)

Apabila program cuba Mencipta objek melalui refleksi dan akses (ubah suai atau baca) kaedah, tetapi jika kaedah itu tidak wujud, pengecualian akan dilemparkan.

12. java.lang.EOFException (pengecualian akhir fail)

Apabila atur cara menemui penghujung fail atau strim semasa input, pengecualian dilemparkan. Jadi pengecualian ini digunakan untuk menyemak sama ada penghujung fail atau strim dicapai

13. java.lang.InstantiationException (pengecualian instan)

Apabila cuba mencipta instance kelas melalui kaedah newInstance() Kelas, tetapi program tidak boleh lulus pembina Dibangkitkan apabila objek dicipta.

Objek kelas mewakili kelas abstrak, antara muka, kelas tatasusunan, jenis asas. Kelas yang diwakili oleh Kelas ini tidak mempunyai pembina yang sepadan.

14. java.lang.InterruptedException (pengecualian terputus)

Apabila urutan menunggu lama, tidur atau keadaan dijeda yang lain dan pada masa ini lain Pengecualian ini dilemparkan apabila benang menamatkan benang melalui kaedah gangguan Benang.

15. java.lang.CloneNotSupportedException (pengecualian klon tidak disokong)

Apabila antara muka Boleh Diklon tidak dilaksanakan atau kaedah klon tidak disokong, memanggil klonnya () kaedah adalah Throw this exception

16, java.lang.OutOfMemoryException (out of memory error)

Dilemparkan apabila memori yang tersedia tidak mencukupi untuk mesin maya Java untuk memperuntukkan kepada objek Ralat

17, java.lang.NoClassDefFoundException (ralat takrifan kelas tidak ditemui)

Apabila mesin maya Java atau pemuat kelas cuba membuat seketika kelas, dan Ralat ini dilemparkan apabila takrif kelas tidak ditemui

Atas ialah kandungan terperinci Apakah pengecualian biasa dan pengendaliannya dalam program Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam