Artikel ini menganalisis mekanisme pengecualian Java dengan contoh dan membagikannya kepada semua orang untuk referensi Anda. Saya yakin ini akan membantu Anda meningkatkan kemampuan penanganan pengecualian program Java Anda. Analisis spesifiknya adalah sebagai berikut:
Seperti kita ketahui bersama, mekanisme pengecualian (Exception) pada Java sangatlah penting. Program pasti akan membuat kesalahan. Mekanisme pengecualian dapat menangkap kesalahan dalam program dan meningkatkan stabilitas dan ketahanan program.
Pengecualian di java dibagi menjadi Pengecualian yang Diperiksa (non-Runtime Exception) dan Pengecualian yang Tidak Dicentang (Pengecualian Runtime). Semua kelas pengecualian mewarisi Exception secara langsung atau tidak langsung. Exception secara langsung mewarisi dari kelas Throwable. Subkelas langsung dari kelas Throwable juga menyertakan kelas kesalahan, namun ketika terjadi kesalahan, program akan langsung keluar dari eksekusi . Kelas RuntimeException mewarisi dari Exception, dan pengecualian runtime secara langsung atau tidak langsung diwarisi dari kelas RuntimeException. Lainnya yang mewarisi kelas Exception adalah pengecualian non-runtime yang dapat ditemukan selama kompilasi. Pengecualian waktu proses hanya terjadi saat waktu proses. Misalnya, pembagian aritmatika dengan nol dapat lolos selama kompilasi, tetapi pengecualian waktu proses akan ditampilkan saat waktu proses, dan pembaginya tidak boleh nol.
Ada dua jenis penanganan pengecualian di java
1. Menangkap pengecualian
Strukturnya adalah sebagai berikut
coba{//Jalankan kode yang mungkin menghasilkan pengecualian}catch(RuntimeException e){//Memproses pengecualian yang ditangkap}catch(Exception e)//Dapat menentukan beberapa pengecualian untuk ditangkap{//Memproses pengecualian yang ditangkap}akhirnya {//The kode yang akan dieksekusi setelah penangkapan adalah opsional, jika ada, itu akan dieksekusi terlepas dari apakah ada pengecualian} coba-tangkap-akhirnya
Jika eksepsi ditangkap oleh catch, maka jika nanti ada pernyataan catch tidak akan dieksekusi, namun jika ada blok akhirnya, maka pernyataan pada blok akhirnya pasti akan dieksekusi.
2. Deklarasikan pengecualian
ThrowsException dideklarasikan pada deklarasi metode dimana metode yang menghasilkan pengecualian dipanggil. Metode ini tidak akan menangani jenis pengecualian ini, tetapi akan ditangani oleh pemanggil metode tersebut.
3. Melemparkan pengecualian secara artifisial
Lemparkan pengecualian secara langsung ke dalam metode, lemparkan pengecualian;
Disarankan untuk tidak menangani pengecualian waktu proses.
Pengecualian khusus mendefinisikan subkelas yang mewarisi dari kelas Exception. Secara umum, ini tidak mendefinisikan subkelas yang mewarisi dari kelas RuntimeException. Ketika ada pernyataan return di blok try, jika ada pernyataan blok akhirnya, pernyataan tersebut masuk blok akhirnya harus dieksekusi terlebih dahulu. Kembali lagi, tetapi jika ada pernyataan System.exit(0) di blok coba, pernyataan blok akhirnya tidak akan dieksekusi, karena System.exit(0) akan mengakhiri blok saat ini. menjalankan mesin virtual Java, dan program akan berakhir sebelum implementasi mesin virtual berakhir.
kelas myException memperluas Pengecualian{ public myException(String str) { super(str }}myException
Pengecualian digunakan dalam pemrosesan file, aplikasi aliran input dan output, dll.
Jenis pengecualian yang umum adalah:
1. java.lang.NullPointerException: Pengecualian penunjuk nol. Alasan pengecualian ini adalah karena suatu referensi bernilai nol, tetapi metode referensi tersebut dipanggil dalam program.
2. java.lang.ClassNotFoundException: Kelas yang ditentukan tidak dapat ditemukan.
3. java.lang.ArithmeticException: Pengecualian aritmatika, seperti pembagian dengan nol.
4. FileNotFoundException: Selama pemrosesan file, file yang ditentukan tidak dapat ditemukan.
5. IOException: Pengecualian aliran input dan output
6. SQLException: pengecualian sql, terjadi kesalahan saat menjalankan pernyataan sql.
Selain itu, ada banyak jenis pengecualian yang akan ditemui dalam pemrograman mendatang. Saya yakin apa yang dijelaskan dalam artikel ini memiliki nilai referensi tertentu untuk pemrograman Java setiap orang.