ネストされた try ブロック

Susan Sarandon
リリース: 2024-10-19 14:09:31
オリジナル
783 人が閲覧しました

Blocos try aninhados

ネストされた 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 ブロックにより、さまざまな種類のエラーを個別に処理できます。
  • 軽度のエラー (ゼロによる除算など) はローカルで処理できるため、プログラムを続行できます。
  • より重大なエラー (配列の境界外へのアクセスなど) は外部ブロックによって捕捉され、プログラムの終了などのより抜本的なアクションにつながる可能性があります。

結論:

  • ネストされた try ブロックの使用は、さまざまなカテゴリのエラーをさまざまな方法で処理する必要がある場合に便利です。
  • これにより、プログラムの実行フローの制御がより柔軟になり、軽度の例外を内部で処理し、重大な例外を外部ブロックに残すことができます。

以上がネストされた try ブロックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!