Cuba Catch in Java: Contoh Pengendalian Pengecualian

Isi kandungan:

Anonim

Apakah Pengecualian di Jawa?

Pengecualian di Java adalah peristiwa yang mengganggu pelaksanaan arahan program dan mengganggu aliran normal pelaksanaan program. Ia adalah objek yang membungkus maklumat peristiwa ralat yang berlaku dalam suatu kaedah dan diserahkan ke sistem runtime. Di Jawa, pengecualian digunakan terutamanya untuk menunjukkan pelbagai jenis keadaan kesalahan.

Dalam tutorial ini, anda akan belajar-

  • Apa itu Pengecualian?
  • Mengapa kita memerlukan Pengecualian?
  • Cara Mengendalikan Pengecualian
  • Cuba Catch Block
  • Hierarki kelas Pengecualian Java
  • Java Akhirnya Sekat

Terdapat dua jenis kesalahan:

  1. Menyusun kesilapan masa
  2. Kesalahan masa jalan

Kesalahan masa kompilasi dapat dikelaskan lagi menjadi dua jenis:

  • Kesalahan Sintaksis
  • Kesalahan Semantik

Ralat Sintaks Contoh:

Bukannya menyatakan

int a;anda secara keliru menyatakannya sebagai in a;penyusun yang akan membuat kesalahan.

Contoh: Anda telah menyatakan pemboleh ubah

int a;dan setelah beberapa baris kod anda sekali lagi menyatakan bilangan bulat sebagai int a;. Semua kesalahan ini diserlahkan semasa anda menyusun kod.

Contoh Kesalahan Masa Jalan

Ralat Runtime dipanggil ralat Pengecualian . Ini adalah sebarang peristiwa yang mengganggu aliran normal pelaksanaan program.

Contoh pengecualian adalah, pengecualian aritmetik, pengecualian Nullpointer, Bahagikan dengan pengecualian sifar, dll.

Pengecualian di Java adalah sesuatu yang di luar kawalan pemaju.

Klik di sini jika video tidak dapat diakses

Mengapa kita memerlukan Pengecualian?

Katakan anda telah mengkodkan program untuk mengakses pelayan. Perkara berjalan lancar semasa anda mengembangkan kodnya.

Semasa pengeluaran sebenar dijalankan, pelayan tidak berfungsi. Apabila program anda cuba mengaksesnya, pengecualian akan dibangkitkan.

Cara Mengendalikan Pengecualian

Sejauh ini kita lihat, pengecualian berada di luar kawalan pemaju. Tetapi menyalahkan kegagalan kod anda pada masalah persekitaran bukanlah jalan penyelesaian. Anda memerlukan Pengaturcaraan yang Kuat, yang menangani situasi yang luar biasa. Kod sedemikian dikenali sebagai Pengecualian Pengecualian.

Dalam contoh kami, pengendalian pengecualian yang baik adalah, apabila pelayan dimatikan, sambungkan ke pelayan sandaran.

Untuk melaksanakannya, masukkan kod anda untuk menyambung ke pelayan (Menggunakan syarat tradisional jika dan lain-lain).

Anda akan memeriksa sama ada pelayan tidak berfungsi. Sekiranya ya, tulis kod untuk menyambung ke pelayan sandaran.

Pengaturan kod seperti itu, menggunakan gelung "if" dan "else" tidak berkesan apabila kod anda mempunyai beberapa pengecualian java untuk dikendalikan.

class connect{if(Server Up){// code to connect to server}else{// code to connect to BACKUP server}}

Cuba Catch Block

Java menyediakan pengendalian luar biasa yang tidak dapat dibina.

  1. Kod biasa masuk ke blok TRY .
  2. Kod pengendalian pengecualian masuk ke blok CATCH

Dalam contoh kami, blok TRY akan mengandungi kod untuk menyambung ke pelayan. Blok CATCH akan mengandungi kod untuk disambungkan ke pelayan sandaran.

Sekiranya pelayan habis, kod di blok CATCH akan diabaikan. Sekiranya pelayan dimatikan, pengecualian dinaikkan, dan kod di blok tangkapan akan dijalankan.

Jadi, ini adalah bagaimana pengecualian ditangani di Java.

Sintaks untuk menggunakan try & catch

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

Contohnya

Langkah 1) Salin kod berikut ke dalam penyunting

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 fail & susun kodnya. Jalankan program menggunakan perintah, JavaException java

Langkah 3) Pengecualian Aritmetik - bahagi dengan sifar ditunjukkan seperti di bawah untuk baris # 5 dan baris # 6 tidak pernah dilaksanakan

Langkah 4) Sekarang mari kita lihat bagaimana mencuba dan menangkap akan membantu kita menangani pengecualian ini. Kami akan meletakkan pengecualian yang menyebabkan garis kod menjadi blok percubaan , diikuti dengan blok tangkapan . Salin kod berikut ke dalam penyunting.

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, Susun & Jalankan kodnya. Anda akan mendapat output berikut

Seperti yang anda perhatikan, pengecualian dikendalikan, dan baris terakhir kod juga dilaksanakan. Juga, perhatikan bahawa Baris # 7 tidak akan dilaksanakan kerana setelah pengecualian dinaikkan aliran kawalan melompat ke blok tangkapan.

Catatan: Objek AritmeticException "e" membawa maklumat mengenai pengecualian yang telah berlaku yang dapat berguna dalam mengambil tindakan pemulihan.

Hierarki kelas Pengecualian Java

Setelah satu pernyataan tangkapan dijalankan, yang lain dipintas, dan pelaksanaan diteruskan setelah blok coba / tangkap. Blok tangkapan bersarang mengikuti hierarki Pengecualian.
  • Semua kelas pengecualian di Java memanjangkan kelas 'Throwable'. Throwable mempunyai dua subkelas, Ralat dan Pengecualian
  • Kelas Ralat menentukan pengecualian atau masalah yang tidak dijangka berlaku dalam keadaan biasa oleh program kami, contoh Kesalahan memori, Kesalahan perkakasan, ralat JVM, dll.
  • Kelas Pengecualian mewakili pengecualian yang dapat dikendalikan oleh program kami, dan program kami dapat dipulihkan dari pengecualian ini dengan menggunakan blok coba dan tangkap
  • Pengecualian Runtime adalah sub-kelas dari kelas pengecualian. Pengecualian jenis ini menunjukkan pengecualian yang berlaku pada masa berjalan dan yang tidak dapat dijejaki pada waktu kompilasi. Contoh yang sangat baik adalah membahagi dengan pengecualian sifar, atau pengecualian penunjuk nol, dll
  • Pengecualian IO dihasilkan semasa operasi input dan output
  • Pengecualian yang terganggu di Java, dihasilkan semasa berbilang utas.
Contoh: Untuk memahami bersarang blok cubaan dan tangkapan

Langkah 1) Salin kod berikut ke dalam penyunting.

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 fail & susun kodnya. Jalankan program menggunakan arahan, JavaException java .

Langkah 3) ArrayIndexOutOfBoundsException dihasilkan. Tukar nilai int d ke 0. Simpan, Kompilasi & Jalankan kod.

Langkah 4 ) Pengecualian Aritmetik mesti dihasilkan.

Langkah 5) Uncomment line # 10 hingga line # 12. Simpan, Susun & Jalankan kod.

Langkah 6) Ralat Penyusunan? Ini kerana Exception adalah kelas asas ArithmeticException Exception. Sebarang Pengecualian yang ditimbulkan oleh ArithmeticException juga dapat dikendalikan oleh kelas Exception. Oleh itu, blok tangkapan ArithmeticException tidak akan pernah mendapat peluang untuk dilaksanakan yang menjadikannya berlebihan. Oleh itu kesalahan penyusunan.

Java Akhirnya Sekat

Blok akhirnya dilaksanakan tanpa mengira pengecualian dibangkitkan di blok percubaan. Adalah pilihan untuk digunakan dengan blok percubaan.

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

Sekiranya, pengecualian dibangkitkan di blok percobaan, akhirnya blok dijalankan setelah blok tangkapan dijalankan.

Contohnya

Langkah 1) Salin kod berikut ke dalam penyunting.

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, Susun & Jalankan Kod.

Langkah 3) Hasil yang dijangkakan. Akhirnya blok dilaksanakan walaupun pengecualian dibangkitkan.

Langkah 4) Ubah nilai pemboleh ubah d = 1. Simpan, Susun dan Jalankan kod dan perhatikan outputnya.Bawah Bentuk

Ringkasan :

  • An Pengecualian adalah satu kesilapan masa jalanan yang mengganggu aliran biasa program execution.Disruption semasa pelaksanaan program itu dirujukkan sebagai kesilapan atau terkecuali.
  • Kesalahan dikelaskan kepada dua kategori
    • Kesalahan masa kompilasi - Kesalahan sintaks, Kesalahan semantik
    • Kesalahan masa kerja- Pengecualian
  • A program yang mantap harus mengendalikan semua pengecualian dan meneruskan aliran biasa pelaksanaan program. Java menyediakan kaedah pengendalian yang luar biasa
  • Exception Handler adalah sekumpulan kod yang menangani pengecualian . Pengecualian dapat ditangani di Java menggunakan try & catch.
  • Cuba blok : Kod biasa berlaku pada blok ini.
  • Catch block : Sekiranya terdapat ralat pada kod biasa, maka akan masuk ke blok ini