Blok percubaan bersarang:
Blok percubaan boleh diletakkan di dalam blok percubaan lain.
Jika pengecualian tidak ditangkap dalam blok percubaan dalam, ia akan disebarkan ke blok percubaan luar.
Penyebaran pengecualian:
Apabila pengecualian berlaku dalam blok dalam dan tidak dikendalikan olehnya, ia boleh ditangkap oleh blok luar, membolehkan program diteruskan atau ditamatkan dengan cara terkawal.
Kod contoh dengan percubaan bersarang:
Contoh berikut menunjukkan blok percubaan dalam yang mengendalikan pembahagian dengan ralat sifar, manakala blok percubaan luar mengendalikan pengecualian akses di luar sempadan tatasusunan.
Contoh kod:
// Usa um bloco try aninhado. class NestTrys { public static void main(String args[]) { // O array numer é mais longo que denom. int numer[] = { 4, 8, 16, 32, 64, 128, 256, 512 }; int denom[] = { 2, 0, 4, 4, 0, 8 }; try { // Bloco try externo for (int i = 0; i < numer.length; i++) { try { // Bloco try aninhado // Tenta realizar a divisão System.out.println(numer[i] + " / " + denom[i] + " is " + numer[i] / denom[i]); } catch (ArithmeticException exc) { // Captura exceção de divisão por zero System.out.println("Can't divide by Zero!"); } } } catch (ArrayIndexOutOfBoundsException exc) { // Captura exceção de acesso fora dos limites do array System.out.println("No matching element found."); System.out.println("Fatal error - program terminated."); } } }
Keluaran program:
Apabila pembahagian dengan sifar berlaku, pengecualian ditangkap oleh blok percubaan dalaman dan program diteruskan.
Apabila ralat indeks berlaku di luar sempadan tatasusunan, blok percubaan luar menangkap pengecualian dan menamatkan atur cara.~
Contoh output:
4 / 2 is 2 Can't divide by Zero! 16 / 4 is 4 32 / 4 is 8 Can't divide by Zero! 128 / 8 is 16 No matching element found. Fatal error – program terminated.
Penggunaan praktikal:
Kesimpulan:
Atas ialah kandungan terperinci Blok percubaan bersarang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!