>Java >java지도 시간 >중첩된 try 블록

중첩된 try 블록

Susan Sarandon
Susan Sarandon원래의
2024-10-19 14:09:31928검색

Blocos try aninhados

중첩된 try 블록:

try 블록은 다른 try 블록 안에 배치될 수 있습니다.
내부 try 블록에서 예외가 발생하지 않으면 외부 try 블록으로 전파됩니다.

예외 전파:
내부 블록에서 예외가 발생하고 처리되지 않는 경우 외부 블록에서 이를 포착하여 프로그램이 제어된 방식으로 계속되거나 종료될 수 있습니다.

중첩된 try가 포함된 예제 코드:
다음 예에서는 0으로 나누기 오류를 처리하는 내부 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.");
        }
    }
}

프로그램 출력:
0으로 나누기가 발생하면 내부 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 블록을 사용하면 다양한 유형의 오류를 별도로 처리할 수 있습니다.
  • 더 적은 오류(예: 0으로 나누기)를 로컬에서 처리하여 프로그램을 계속 진행할 수 있습니다.
  • 더 심각한 오류(예: 배열 범위 외부 액세스)는 외부 블록에 의해 포착될 수 있으며, 이는 프로그램 종료와 같은 더 과감한 조치로 이어질 수 있습니다.

결론:

  • 중첩된 try 블록을 사용하는 것은 다양한 범주의 오류를 다양한 방식으로 처리해야 할 때 유용합니다.
  • 이를 통해 프로그램 실행 흐름을 보다 유연하게 제어할 수 있어 내부적으로 가벼운 예외를 처리하고 외부 블록에 심각한 예외를 남겨둘 수 있습니다.

위 내용은 중첩된 try 블록의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.