Coba Tangkap di Jawa:Contoh Penanganan Pengecualian
Apa itu Pengecualian di Java?
Pengecualian di Jawa adalah peristiwa yang mengganggu eksekusi instruksi program dan mengganggu aliran normal eksekusi program. Ini adalah objek yang membungkus informasi peristiwa kesalahan yang terjadi dalam suatu metode dan diteruskan ke sistem runtime. Di Java, pengecualian terutama digunakan untuk menunjukkan berbagai jenis kondisi kesalahan.
Dalam tutorial ini, Anda akan belajar-
Apa itu Pengecualian?
Mengapa kita membutuhkan Pengecualian?
Cara Menangani Pengecualian
Coba Catch Block
Hirarki kelas Pengecualian Java
Java Akhirnya Diblokir
Ada dua jenis kesalahan:
Kesalahan waktu kompilasi
Kesalahan waktu proses
Kesalahan waktu kompilasi dapat diklasifikasikan lagi menjadi dua jenis:
Kesalahan Sintaks
Kesalahan Semantik
Contoh Kesalahan Sintaks:
Alih-alih mendeklarasikan int a; Anda salah mendeklarasikannya sebagai in a; yang kompilernya akan menimbulkan kesalahan.
Contoh:Anda telah mendeklarasikan variabel int a; dan setelah beberapa baris kode, Anda kembali mendeklarasikan bilangan bulat sebagai int a; . Semua kesalahan ini disorot saat Anda mengkompilasi kode.
Contoh Kesalahan Waktu Proses
Kesalahan Runtime disebut Pengecualian kesalahan. Ini adalah peristiwa apa pun yang mengganggu aliran normal eksekusi program.
Contoh pengecualian adalah, pengecualian aritmatika, pengecualian Nullpointer, pengecualian Bagi dengan nol, dll.
Pengecualian di Java adalah sesuatu yang berada di luar kendali pengembang.
Klik di sini jika video tidak dapat diakses
Mengapa kita membutuhkan Pengecualian?
Misalkan Anda telah membuat kode program untuk mengakses server. Semuanya bekerja dengan baik saat Anda mengembangkan kode.
Selama proses produksi yang sebenarnya, server sedang down. Saat program Anda mencoba mengaksesnya, pengecualian akan muncul.
Cara Menangani Pengecualian
Sejauh ini kita telah melihat, pengecualian berada di luar kendali pengembang. Tetapi menyalahkan kegagalan kode Anda pada masalah lingkungan bukanlah solusi. Anda memerlukan Pemrograman yang Kuat, yang menangani situasi luar biasa. Kode tersebut dikenal sebagai Pengecualian Handler.
Dalam contoh kami, penanganan pengecualian yang baik adalah, saat server sedang down, sambungkan ke server cadangan.
Untuk menerapkan ini, masukkan kode Anda untuk terhubung ke server (Menggunakan kondisi if dan else tradisional).
Anda akan memeriksa apakah server sedang down. Jika ya, tulis kode untuk terhubung ke server cadangan.
Pengorganisasian kode seperti itu, menggunakan loop “if” dan “else” tidak efektif bila kode Anda memiliki beberapa pengecualian java untuk ditangani.
class connect{
if(Server Up){
// code to connect to server
}
else{
// code to connect to BACKUP server
}
}
Coba Catch Block
Java menyediakan penanganan luar biasa bawaan.
Kode normal masuk ke COBA blokir.
Kode penanganan pengecualian masuk ke CATCH blokir
Dalam contoh kita, blok TRY akan berisi kode untuk terhubung ke server. Blok CATCH akan berisi kode untuk terhubung ke server cadangan.
Jika server aktif, kode di blok CATCH akan diabaikan. Jika server sedang down, eksepsi akan muncul, dan kode di blok catch akan dieksekusi.
class JavaException {
public static void main(String args[]){
int d = 0;
int n = 20;
int fraction = n/d;
System.out.println("End Of Main");
}
}
Langkah 2) Simpan file &kompilasi kode. Jalankan program menggunakan perintah, java JavaException
Langkah 3) Pengecualian Aritmatika – bagi dengan nol ditunjukkan seperti di bawah ini untuk baris # 5 dan baris # 6 tidak pernah dieksekusi
Langkah 4) Sekarang mari kita lihat bagaimana try and catch akan membantu kita menangani pengecualian ini. Kami akan menempatkan pengecualian yang menyebabkan baris kode menjadi coba blok, diikuti dengan tangkapan memblokir. Salin kode berikut ke dalam editor.
class JavaException {
public static void main(String args[]) {
int d = 0;
int n = 20;
try {
int fraction = n / d;
System.out.println("This line will not be Executed");
} catch (ArithmeticException e) {
System.out.println("In the catch Block due to Exception = " + e);
}
System.out.println("End Of Main");
}
}
Langkah 5) Simpan, Kompilasi &Jalankan kode. Anda akan mendapatkan output berikut
Seperti yang Anda amati, pengecualian ditangani, dan baris kode terakhir juga dieksekusi. Juga, perhatikan bahwa Baris #7 tidak akan dieksekusi karena segera setelah pengecualian dinaikkan, aliran kontrol melompat ke blok tangkapan.
Catatan: Objek AritmeticException "e" membawa informasi tentang pengecualian yang telah terjadi yang dapat berguna dalam mengambil tindakan pemulihan.
Hirarki kelas Pengecualian Java
Setelah satu pernyataan tangkap dieksekusi, yang lain dilewati, dan eksekusi berlanjut setelah blok coba/tangkap. Blok tangkapan bersarang mengikuti hierarki Pengecualian.
Semua kelas pengecualian di Java memperluas kelas 'Throwable'. Throwable memiliki dua subclass, Error dan Exception
Kelas Error mendefinisikan pengecualian atau masalah yang tidak diharapkan terjadi dalam keadaan normal oleh program kita, misalnya Memory error, Hardware error, JVM error, dll
Kelas Pengecualian mewakili pengecualian yang dapat ditangani oleh program kami, dan program kami dapat dipulihkan dari pengecualian ini menggunakan blok coba dan tangkap
Pengecualian Runtime adalah sub-kelas dari kelas pengecualian. Pengecualian jenis ini mewakili pengecualian yang terjadi pada waktu berjalan dan yang tidak dapat dilacak pada waktu kompilasi. Contoh yang sangat baik dari hal yang sama adalah membagi dengan nol pengecualian, atau pengecualian pointer nol, dll
Pengecualian IO dihasilkan selama operasi input dan output
Pengecualian yang terputus di Java, dihasilkan selama beberapa threading.
Contoh: Untuk memahami sarang dari blok coba dan tangkap
Langkah 1) Salin kode berikut ke dalam editor.
class JavaException {
public static void main(String args[]) {
try {
int d = 1;
int n = 20;
int fraction = n / d;
int g[] = {
1
};
g[20] = 100;
}
/*catch(Exception e){
System.out.println("In the catch block due to Exception = "+e);
}*/
catch (ArithmeticException e) {
System.out.println("In the catch block due to Exception = " + e);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("In the catch block due to Exception = " + e);
}
System.out.println("End Of Main");
}
}
Langkah 2) Simpan file &kompilasi kode. Jalankan program menggunakan perintah, java JavaException .
Langkah 3) ArrayIndexOutOfBoundsException dihasilkan. Ubah nilai int d menjadi 0. Simpan, Kompilasi &Jalankan kodenya.
Langkah 4 ) ArithmeticException harus dibuat.
Langkah 5) Batalkan komentar pada baris #10 hingga baris #12. Simpan, Kompilasi &Jalankan kode.
Langkah 6)Kesalahan Kompilasi? Ini karena Exception adalah kelas dasar dari ArithmeticException Exception. Setiap Exception yang dimunculkan oleh ArithmeticException dapat ditangani oleh kelas Exception juga. Jadi blok catch dari ArithmeticException tidak akan pernah mendapat kesempatan untuk dieksekusi yang membuatnya menjadi redundan. Karenanya kesalahan kompilasi.
Java Akhirnya Diblokir
Blok akhirnya dieksekusi terlepas dari pengecualian yang dimunculkan di blok coba. Ini adalah opsional untuk digunakan dengan blok coba.
Dalam kasus, pengecualian muncul di blok try, akhirnya blok dieksekusi setelah blok catch dieksekusi.
Contoh
Langkah 1) Salin kode berikut ke dalam editor.
class JavaException {
public static void main(String args[]){
try{
int d = 0;
int n =20;
int fraction = n/d;
}
catch(ArithmeticException e){
System.out.println("In the catch block due to Exception = "+e);
}
finally{
System.out.println("Inside the finally block");
}
}
}
Langkah 2) Simpan, Kompilasi &Jalankan Kode.
Langkah 3) Keluaran yang diharapkan. Akhirnya blok dieksekusi meskipun pengecualian dimunculkan.
Langkah 4) Ubah nilai variabel d =1. Simpan, Kompilasi dan Jalankan kode dan amati outputnya.Bottom of Form
Ringkasan :
Sebuah Pengecualian adalah kesalahan waktu proses yang menginterupsi aliran normal eksekusi program. Gangguan selama eksekusi program disebut sebagai error atau exception.
Kesalahan diklasifikasikan menjadi dua kategori
Kesalahan waktu kompilasi – Kesalahan sintaks, Kesalahan semantik
Kesalahan waktu proses- Pengecualian
Sebuah program yang kuat harus menangani semua pengecualian dan melanjutkan dengan aliran normal eksekusi program. Java menyediakan metode penanganan luar biasa bawaan
Penangan Pengecualian adalah sekumpulan kode yang menangani pengecualian . Pengecualian dapat ditangani di Java menggunakan try &catch.
Coba blokir :Kode normal ada di blok ini.
Blok tangkap :Jika ada kesalahan dalam kode normal, maka akan masuk ke blok ini