Sintaksis:
Sintaks dari coba-tangkap-akhirnya blok diberikan di bawah ini.
cobapernyataan 1… N
catch (ExceptiontType var)
pernyataan 1… N
akhirnya
pernyataan 1… N
Di sini, jika pengecualian terjadi di dalam blok coba, maka pengecualian akan dilemparkan ke blok tangkap, dan blok akhirnya adalah opsional di sini. Kode blok akhirnya mengeksekusi apakah pengecualian terjadi atau tidak.
Contoh-1: Penanganan pengecualian dengan satu blok tangkapan
Contoh berikut menunjukkan penggunaan penanganan pengecualian menggunakan blok tangkapan tunggal. Nama file akan diambil sebagai input dan membuat objek BufferedReader untuk membuka file untuk dibaca. Jika nama file ada, maka isi file akan dibaca baris demi baris dan dicetak. Jika file tidak ada, maka pengecualian akan dibuat, dan pesan kesalahan akan dicetak.
impor jawa.io.Pembaca Buffer;impor jawa.io.Pembaca File;
impor jawa.io.IOException;
impor jawa.kegunaan.Pemindai;
kelas publik kecuali1
public static void main(String[] args)
// Buat objek Pemindai
Pemindai di = Pemindai baru (Sistem.di);
Sistem.di luar.print("Masukkan Nama File : ");
// Ambil data string dari pengguna
String FileName = di.lanjut();
coba
//Buat objek pembaca
Pembaca BufferedReader = new BufferedReader(FileReader baru(FileName));
//Baca baris pertama jika file ada
Garis string = pembaca.readLine();
sementara (baris != nol)
//Mencetak garis
Sistem.di luar.println(baris);
//Baca baris berikutnya
baris = pembaca.readLine();
//Tutup objek pembaca
pembaca.Menutup();
//Tutup objek pemindai
di.Menutup();
tangkap (IOException e)
//Cetak pesan kesalahan
Sistem.di luar.println("File tidak ada");
Keluaran:
Pada keluaran berikut, 'Halo.txt' diberikan sebagai nama file yang tidak ada. Jadi pesan berikut dicetak.
Lain kali, file1.txt diberikan sebagai nama file yang ada, dan output menunjukkan konten file.
Contoh-2: Penanganan pengecualian dengan beberapa blok tangkapan
Bagaimana Anda dapat menggunakan beberapa blok tangkapan untuk menangani beberapa pengecualian ditunjukkan pada contoh berikut:. Di sini, tiga blok tangkapan dideklarasikan. Blok tangkapan pertama akan menangkap kesalahan aritmatika ketika operasi aritmatika tidak logis dilakukan. Tangkapan kedua akan menangkap kesalahan array di luar jangkauan ketika nilai indeks array akan dicoba untuk dibaca yang tidak ada. Blok tangkapan ketiga akan menangkap kesalahan nilai numerik ketika karakter atau nilai string apa pun diberikan sebagai nilai array. Dalam kode, array dengan empat indeks dideklarasikan dan diinisialisasi dengan nilai integer yang akan diambil dari pengguna. Nilai array dicetak menggunakan loop. Operasi pembagian dilakukan pada akhir blok try.
impor jawa.kegunaan.Pemindai;kelas publik kecuali2
public static void main(String[] args)
mencoba
//Deklarasikan array numerik
int jumlah_arr[] = int baru[4];
//Buat objek Pemindai
Pemindai di = Pemindai baru (Sistem.di);
Sistem.di luar.println("Masukkan Empat Angka :");
// Iterasi loop empat kali
untuk (int i = 0; i < 4; i++)
//Masukkan nomor
int n = in.nextInt();
//Menetapkan nilai ke array
jumlah_arr[i] = n;
Sistem.di luar.println("Nilai array adalah :");
// Iterasi loop lima kali
untuk (int i = 0; i < 4; i++)
//Mencetak nilai array
Sistem.di luar.println(jumlah_arr[i]);
// Bagi dan cetak nilainya
int bilangan = 50/0;
Sistem.di luar.cetak(angka);
//Tutup objek pemindai
di.Menutup();
tangkap(ArithmeticException e)
Sistem.di luar.println("Tidak ada bilangan yang habis dibagi 0");
catch(ArrayIndexOutOfBoundsException e)
Sistem.di luar.println("Terjadi nilai indeks di luar array");
tangkap (Pengecualian e)
Sistem.di luar.println("Nilai bilangan tidak diberikan");
Keluaran:
Output berikut menunjukkan bahwa nilai array dimasukkan dan dicetak dengan benar, tetapi blok tangkapan ketiga dijalankan karena 50 dibagi dengan 0, yang merupakan kesalahan.
Program dijalankan untuk kedua kalinya. Ketika nilai string diberikan sebagai nilai array, maka pengecualian kedua dihasilkan, dan pernyataan blok tangkapan kedua dieksekusi.
Contoh-3: Penanganan pengecualian dengan blok try-catch-finally
Penggunaan blok akhirnya dengan blok try-catch ditunjukkan pada contoh berikut:. Kode blok akhirnya dijalankan jika pengecualian terjadi atau tidak. Dalam kode, nilai integer akan diambil dari pengguna. Jika pengguna memberikan nilai string apa pun, maka InputMismatchException
akan menghasilkan dan mencetak pesan dari blok tangkap. Objek pemindai akan ditutup di akhirnya blok jika pengecualian menghasilkan atau tidak.
impor jawa.kegunaan.Pemindai;impor jawa.kegunaan.InputMismatchException;
kelas publik kecuali3
public static void main(String[] args)
//Buat objek Pemindai
Pemindai di = Pemindai baru (Sistem.di);
Sistem.di luar.print("Masukkan Angka : ");
coba
//Mengambil data string dari pengguna
int bilangan = in.nextInt();
//cetak nomornya
Sistem.di luar.println("Nilai Bilangan = " + bilangan);
catch(InputMismatchException e)
//Mencetak pesan kesalahan error
Sistem.di luar.println("Nilai string tidak diterima.");
akhirnya
//Tutup objek pemindai
di.Menutup();
Sistem.di luar.println("Dihentikan dari program");
Keluaran:
78 diberikan sebagai nilai input dalam output berikut setelah mengeksekusi kode. Jadi, tidak ada pengecualian yang dihasilkan di sini. Pesan dari blok akhirnya dicetak nanti.
Lanjut, Halo diberikan sebagai input setelah mengeksekusi kode yang berupa string. Jadi, pengecualian dihasilkan, dan pesan kesalahan dari blok tangkap dicetak. Pesan dari blok akhirnya dicetak nanti.
Kesimpulan:
Penanganan pengecualian adalah fitur yang sangat penting dan berguna dari bahasa pemrograman apa pun yang dapat digunakan untuk menyembunyikan pesan kesalahan yang sebenarnya dari pengguna dan memberikan pesan kesalahan yang dapat dibaca manusia agar pengguna dapat memahami kesalahan dengan benar. Tutorial ini membantu pengguna untuk mempelajari berbagai cara menerapkan penanganan pengecualian di Java dan membuat kode mereka lebih sesuai.