嵌套 try 块:
一个 try 块可以放置在另一个 try 块内。
如果内部 try 块没有捕获异常,它将传播到外部 try 块。
异常传播:
当内部块发生异常且未被内部块处理时,可以被外部块捕获,从而允许程序以受控的方式继续或终止。
嵌套 try 的示例代码:
以下示例显示内部 try 块处理除零错误,而外部 try 块处理数组边界之外的访问异常。
代码示例:
// 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."); } } }
程序输出:
当发生被零除时,异常会被内部 try 块捕获,程序继续执行。
当索引错误发生在数组边界之外时,外部 try 块捕获异常并终止程序。~
示例输出:
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.
实际使用:
结论:
以上是嵌套的 try 块的详细内容。更多信息请关注PHP中文网其他相关文章!