Rumah  >  Artikel  >  Java  >  Blok Tangkapan Berbilang di Jawa

Blok Tangkapan Berbilang di Jawa

王林
王林asal
2024-08-30 15:11:46473semak imbas

Kami boleh mengendalikan pengecualian dalam kod kami dengan memasukkan blok cuba-tangkap dalam java. Di sini dalam artikel ini, kita akan melihat cara kita boleh mengendalikan berbilang pengecualian untuk satu blok percubaan dengan menggunakan berbilang blok tangkapan atau berbilang argumen untuk blok tangkapan.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Sintaks

Sintaks Multiple Catch Block dalam Java diberikan di bawah:

Sintaks 1: blok cuba-tangkap ringkas

try
{
//code snippet which might responsible for exceptions
}
catch (<type_of_exception> <name_of_exception_object>)‏
{
//here we handle exceptions
}

Sintaks 2: blok cuba-tangkap dengan blok tangkapan berbilang

try
{
//code snippet which might responsible for exceptions
}
catch (<type_of_exception> <name_of_exception_object>)‏ //catch block 1
{
//here we handle exceptions
}
catch (<type_of_exception> <name_of_exception_object>)‏ //catch block 2
{
//here we handle exceptions
}
catch (<type_of_exception> <name_of_exception_object>)‏ //catch block 3
{
//here we handle exceptions
}

Sintaks 3: blok cuba-tangkap dengan berbilang kenyataan tangkapan sebagai hujah blok tangkapan

try
{
//code snippet which might responsible for exceptions
}
catch (<type_of_exception1> | <type_of_exception2> | <type_of_exception3> <name_of_exception_object>)‏
{
//here we handle exceptions
}

Bagaimana Catch Block Berfungsi di Java?

Pada mulanya, kita perlu menyemak blok cuba sebelum bergerak untuk menangkap blok.

1. Cuba Sekat

Ia mengandungi coretan kod yang mungkin menghasilkan pengecualian. Jadi, apabila anda mengesyaki bahawa kod anda mungkin menghasilkan pengecualian, letakkan coretan kod itu di dalam blok percubaan. Sekurang-kurangnya satu blok tangkapan diperlukan untuk blok percubaan.

2. Tangkap Blok

Ia mengandungi coretan kod yang mengendalikan pengecualian yang mungkin berlaku untuk kod yang ditulis di dalam blok percubaan yang sepadan. Sekarang bagaimana untuk menangani berbilang pengecualian, jika ada?

Anda boleh mengambil dua cara:

  • Gunakan Berbilang Tangkapan untuk Blok Cubaan: Di sini anda boleh mengendalikan berbilang pengecualian di bawah beberapa blok tangkapan untuk blok percubaan yang sepadan. Aliran program secara automatik akan datang ke blok tangkapan satu demi satu dan kemudian, blok tangkapan yang sepadan ditemui mengikut pengecualian dan akan dikendalikan dengan sewajarnya.
  • Gunakan Pernyataan Tangkapan Berbilang dalam Argumen Blok Tangkapan: Ciri ini datang dari Java 7. Di sini anda boleh mengendalikan berbilang pengecualian di bawah satu blok tangkapan (dipisahkan oleh tanda paip) untuk blok percubaan yang sepadan. Aliran program akan datang secara automatik ke blok tangkapan dan kemudian, pengecualian yang sepadan di dalam argumen blok tangkapan ditemui untuk blok percubaan dan akan dikendalikan dengan sewajarnya.

Pembina

Kami juga boleh menulis blok cuba-tangkap di dalam pembina dan ia akan berfungsi seperti yang diharapkan. Dalam contoh di bawah, kami akan menulis kod di dalam try constructor: try block akan menjana pengecualian aritmetik yang dikendalikan dalam blok tangkapan.

public class MultipleCatchBlockInConstructor
{
MultipleCatchBlockInConstructor()
{
try
{
int num=6/0;
}
catch(ArrayIndexOutOfBoundsException excp)
{
System.out.println("Exception is : "+excp);
}
catch(ArithmeticException excp)
{
System.out.println("Exception is : "+ excp);
}
}
public static void main(String[] args) {
MultipleCatchBlockInConstructor mc=new MultipleCatchBlockInConstructor();
}
}

Output:

Blok Tangkapan Berbilang di Jawa

Contoh Multiple Catch Block di Java

Dalam bahagian ini, kita akan membincangkan banyak contoh kod. Anda harus mencuba kod ini sendiri dan hitung output dengan yang diberikan.

Contoh #1

Ini ialah contoh mudah blok berbilang tangkapan, di mana kami telah menulis pernyataan yang akan menghasilkan pengecualian di dalam blok cuba, yang akan dikendalikan oleh blok tangkapan yang sepadan daripada tiga blok tangkapan.

Kod:

public class MultipleCatchBlockInJava {
public static void main(String[] args) {
try{
System.out.println("start of try block");
int num = 6/0;
}
catch(ArithmeticException e)
{
System.out.println("divide by zero exception ");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("ArrayIndexOutOfBounds Exception occurs");
}
catch(Exception e)
{
System.out.println("Any other excpetion");
}
System.out.println("end of try-catch block");
}
}

Output:

Blok Tangkapan Berbilang di Jawa

Contoh #2

Dalam contoh ini, kami telah menggambarkan tentang penyerahan pengecualian di luar sempadan untuk tatasusunan dengan cuba dan tangkap blok.

Kod:

public class MultipleCatchBlockInJava {
public static void main(String[] args) {
try{
System.out.println("start of try block");
int arr[]=new int[6];
System.out.println(arr[12]); //we want to access 12th element of array which does not exist as size is of 6
}
catch(ArithmeticException e)
{
System.out.println("divide by zero exception");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("Array IndexOutOfBounds Exception occurs");
}
catch(Exception e)
{
System.out.println("Any other exception");
}
System.out.println("end of try-catch block");
}
}

Output:

Blok Tangkapan Berbilang di Jawa

Contoh #3

Dalam contoh ini, kita akan melihat bagaimana penuding nol dikendalikan oleh blok tangkapan. Juga, ambil perhatian bahawa terdapat berbilang senario pengecualian dalam blok cuba, tetapi setelah aliran program mencapai pernyataan penjanaan pengecualian pertama (di sini, pengecualian Nullpointer), ia akan segera keluar dari blok percubaan dan mencari pengendali pengecualian dalam blok tangkapan. Pernyataan penjanaan pengecualian lain (di sini, indeks Tatasusunan daripada pengecualian terikat) di dalam blok cuba diabaikan.

Kod:

public class MultipleCatchBlockInJava {
public static void main(String[] args) {
try{
System.out.println("start of try block");
String str=null;
System.out.println(str.length());  //we want to get length of a null string
int arr[]=new int[6];
System.out.println(arr[12]); //we want to access 12th element of array which does not exist as size is of 6
}
catch(ArithmeticException e)
{
System.out.println("divide by zero exception");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("Array IndexOutOfBounds Exception occurs");
}
catch(NullPointerException e)
{
System.out.println("Null pointer Exception occurs");
}
System.out.println("end of try-catch block");
}
}

Output:

Blok Tangkapan Berbilang di Jawa

Contoh #4

Dalam contoh ini, kami akan menyemak cara pengecualian akan dikendalikan oleh berbilang argumen bagi satu blok tangkapan.

Kod:

public class MultipleCatchBlockInJava {
public static void main(String[] args) {
try{
System.out.println("start of try block");
String str=null;
System.out.println(str.length());  //we want to get length of a null string
int arr[]=new int[6];
System.out.println(arr[10]); //we want to access 10th element of array which does not exist as size is of 6
}
catch(ArithmeticException | ArrayIndexOutOfBoundsException | NullPointerException e )
{
System.out.println("Code is throwing " + e);
}
System.out.println("end of try-catch block");
}
}

Output:

Blok Tangkapan Berbilang di Jawa

Kesimpulan

Ini menyimpulkan pembelajaran kami untuk beberapa blok tangkapan dari perspektif pengaturcaraan java. Untuk meringkaskan: Setiap kali anda perlu mengendalikan berbilang pengecualian, anda boleh menulisnya di dalam berbilang blok tangkapan. Sebagai alternatif, untuk java 7 dan ke atas anda boleh menulis beberapa pengecualian dalam hujah blok tangkapan tunggal dan aliran program akan memilih ini secara automatik. Selain itu, adalah penting untuk anda menulis kod sendiri untuk pemahaman yang lebih baik.

Atas ialah kandungan terperinci Blok Tangkapan Berbilang di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Iterator di JawaArtikel seterusnya:Iterator di Jawa