Coba Catch in Java: Contoh Penanganan Pengecualian

Daftar Isi:

Anonim

Apa itu Pengecualian di Jawa?

Pengecualian di Java adalah peristiwa yang mengganggu pelaksanaan instruksi program dan mengganggu aliran normal pelaksanaan program. Ini adalah objek yang membungkus informasi peristiwa kesalahan yang terjadi dalam 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?
  • Bagaimana Menangani Pengecualian
  • Coba Catch Block
  • Hierarki kelas Pengecualian Java
  • Java Akhirnya Blokir

Ada dua jenis kesalahan:

  1. Kompilasi kesalahan waktu
  2. Kesalahan runtime

Kesalahan waktu kompilasi dapat diklasifikasikan lagi menjadi dua jenis:

  • Kesalahan Sintaks
  • Kesalahan Semantik

Contoh Kesalahan Sintaks:

Alih-alih mendeklarasikan

int a;Anda salah menyatakannya sebagai in a;kompilator yang akan mengeluarkan kesalahan.

Contoh: Anda telah mendeklarasikan sebuah variabel

int a;dan setelah beberapa baris kode, Anda kembali mendeklarasikan integer sebagai int a;. Semua kesalahan ini disorot saat Anda mengompilasi kode.

Contoh Kesalahan Waktu Proses

Kesalahan runtime disebut kesalahan Pengecualian . Ini adalah peristiwa apa pun yang mengganggu aliran normal eksekusi program.

Contoh untuk pengecualian adalah, pengecualian aritmatika, pengecualian Nullpointer, Divide dengan nol pengecualian, 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 aktual, server tidak aktif. Ketika program Anda mencoba mengaksesnya, pengecualian akan muncul.

Bagaimana Menangani Pengecualian

Sejauh ini kita telah melihat, pengecualian berada di luar kendali pengembang. Tetapi menyalahkan kegagalan kode Anda pada masalah lingkungan bukanlah solusi. Anda membutuhkan Pemrograman yang Kuat, yang menangani situasi luar biasa. Kode tersebut dikenal sebagai Exception Handler.

Dalam contoh kami, penanganan pengecualian yang baik adalah, saat server tidak aktif, sambungkan ke server cadangan.

Untuk menerapkan ini, masukkan kode Anda untuk terhubung ke server (Menggunakan kondisi tradisional if dan else).

Anda akan memeriksa apakah server sedang down. Jika ya, tulis kode untuk terhubung ke server cadangan.

Organisasi kode seperti itu, menggunakan loop "if" dan "else" tidak efektif jika 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 yang terintegrasi.

  1. Kode normal masuk ke blok TRY .
  2. Kode penanganan pengecualian masuk ke blok CATCH

Dalam contoh kami, blok TRY akan berisi kode untuk terhubung ke server. Blok CATCH akan berisi kode untuk terhubung ke server cadangan.

Jika server sudah habis, kode di blok CATCH akan diabaikan. Jika server down, pengecualian dimunculkan, dan kode di blok catch akan dieksekusi.

Jadi, beginilah penanganan pengecualian di Java.

Sintaks untuk menggunakan coba & tangkap

try{statement(s)}catch (exceptiontype name){statement(s)}

Contoh

Langkah 1) Salin kode berikut ke editor

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 kodenya. Jalankan programnya 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 coba dan tangkap akan membantu kita menangani pengecualian ini. Kami akan menempatkan pengecualian yang menyebabkan baris kode menjadi blok percobaan , diikuti oleh blok tangkap . Salin kode berikut ke 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 dijalankan karena segera setelah pengecualian dimunculkan, aliran kontrol akan melompat ke blok catch.

Catatan: Objek AritmeticException "e" membawa informasi tentang pengecualian yang telah terjadi yang dapat berguna dalam mengambil tindakan pemulihan.

Hierarki kelas Pengecualian Java

Setelah satu pernyataan catch dieksekusi, yang lain dilewati, dan eksekusi berlanjut setelah blok coba / tangkap. Blok tangkapan bertingkat mengikuti hierarki pengecualian.
  • Semua kelas pengecualian di Java memperluas kelas 'Throwable'. Throwable memiliki dua subclass, Error dan Exception
  • Kelas Kesalahan mendefinisikan pengecualian atau masalah yang tidak diharapkan terjadi dalam keadaan normal oleh program kami, misalnya Kesalahan memori, kesalahan Perangkat Keras, kesalahan JVM, dll.
  • Kelas Exception mewakili pengecualian yang dapat ditangani oleh program kami, dan program kami dapat dipulihkan dari pengecualian ini menggunakan blok coba dan tangkap
  • Pengecualian waktu proses adalah sub-kelas dari kelas pengecualian. Pengecualian jenis ini mewakili pengecualian yang terjadi pada waktu proses dan yang tidak dapat dilacak pada waktu kompilasi. Contoh yang sangat baik dari hal yang sama adalah dibagi dengan pengecualian nol, atau pengecualian penunjuk nol, dll
  • Pengecualian IO dihasilkan selama operasi input dan output
  • Pengecualian terputus di Java, dihasilkan selama beberapa threading.
Contoh: Untuk memahami penumpukan blok coba dan tangkap

Langkah 1) Salin kode berikut ke 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 kodenya. Jalankan programnya menggunakan perintah java JavaException .

Langkah 3) ArrayIndexOutOfBoundsException dibuat. Ubah nilai int d menjadi 0. Save, Compile & Run the code.

Langkah 4 ) ArithmeticException harus dibuat.

Langkah 5) Batalkan komentar baris # 10 ke 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 ArithmeticException tidak akan pernah mendapat kesempatan untuk dieksekusi yang membuatnya menjadi redundan. Karenanya kesalahan kompilasi.

Java Akhirnya Blokir

Blok terakhir dijalankan terlepas dari pengecualian yang dimunculkan di blok percobaan. Ini opsional untuk digunakan dengan blok percobaan.

 try {statement(s)} catch (ExceptiontType name) {statement(s)} finally {statement(s)}

Dalam kasus, pengecualian dimunculkan di blok percobaan, akhirnya blok dieksekusi setelah blok catch dijalankan.

Contoh

Langkah 1) Salin kode berikut ke 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) Output yang diharapkan. Akhirnya blok dijalankan meskipun pengecualian dimunculkan.

Langkah 4) Ubah nilai variabel d = 1. Simpan, Kompilasi dan Jalankan kode dan amati keluarannya.

Ringkasan :

  • Sebuah Pengecualian adalah kesalahan run-time yang mengganggu aliran normal execution.Disruption Program selama pelaksanaan program ini disebut sebagai kesalahan atau pengecualian.
  • Kesalahan diklasifikasikan menjadi dua kategori
    • Kompilasi kesalahan waktu - Kesalahan sintaks, kesalahan semantik
    • Kesalahan runtime- Pengecualian
  • Sebuah program yang kuat harus menangani semua pengecualian dan terus dengan aliran normal dari pelaksanaan program. Java menyediakan metode penanganan luar biasa yang terintegrasi
  • Exception Handler adalah sekumpulan kode yang menangani pengecualian . Pengecualian dapat ditangani di Java menggunakan coba & tangkap.
  • Coba blokir : Kode normal berada di blok ini.
  • Catch block : Jika ada kesalahan pada kode normal, maka itu akan masuk ke blok ini