「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java での例外処理

Java での例外処理

2024 年 8 月 1 日に公開
ブラウズ:811

Exception Handling In Java

Java コードまたはプログラムを実行すると、コンパイルして実行されるか、エラーがスローされます。コードが をスローする場合、それはエラーまたは例外の結果です。

エラーの方が重大です。これはコードの範囲外で、アプリケーションが実行されている環境内で発生します。プログラムはエラーをキャッチして処理することを期待されていません。

エラーの例は次のとおりです

  • メモリ不足エラー
  • 仮想マシンエラー
  • スタックオーバーフローエラー

コードのスコープ内で例外が発生します。これは実行エラーとも呼ばれ、コードの実行中に発生することを意味します。プログラマは、プログラム内の例外をキャッチして処理することが期待されています。

この投稿では、特に例外と実行時エラーに焦点を当てます。例外と Java プログラムで例外エラーを処理する方法についてすべて学びます。

Java の実行エラーの種類

Java には 3 種類の実行エラーがあります。それぞれの内訳は次のとおりです

。コンパイル時エラー

このタイプのエラーは、コンパイル エラーまたはチェック エラーとして知られています。 Java プログラムはコンパイル段階でこのコードをスローします。

つまり、このエラーは、Javac コードがバイトコードにコンパイルされるときに発生します。コンパイル時エラーは通常、コード構文のエラーによって発生します。

たとえば、プログラマがステートメントの最後にセミコロンを追加しなかったり、印刷前に変数を初期化できなかったりした場合です。

public class JavaExceptionCodes {
    public static void main (String []args){
        int y = 10      //no semicolon
        System.out.println(y);
    }

}

。ランタイムエラー

実行時エラーは、例外エラーまたは未チェックエラーとも呼ばれます。プログラムの実行中に発生します。コードはコンパイルされますが、実行時にエラーがスローされます。

実行時エラーは、さらに組み込み例外とユーザー定義例外に分類できます。組み込み例外の例は次のとおりです:

  • ArrayIndexOutOfBoundsException
  • 算術例外
  • FileNotFoundException
  • NullPointerException

たとえば、ユーザーが文字列の代わりに int を入力したり、配列のサイズより大きな値を挿入した場合です。

public class JavaExceptionCodes {
    public static void main (String []args) {
        int nombas[] = {1, 2, 3, 4, 5};
        System.out.println(nombas[6]); 

    }
}
//ArrayIndexOutOfBoundsException

。論理エラー

セマンティック エラーとも呼ばれ、プログラムの論理出力にエラーがある場合に発生します。たとえば、3 3 は出力 7 を示します。または、アカウントにログインして別のプロファイルに移動したときを示します。

IDE は常にこのエラーをプログラマに指摘するため、コンパイル時エラーを見つけるのが最も簡単です。論理エラーは、コードがコンパイル時エラーや実行時エラーをスローしないため、ほとんどの場合、最も見つけにくいエラーです。

例外処理の概念

例外処理は、プログラム内のエラーを捕捉し、プログラムの通常の実行フローを維持するために使用されます。通常、プログラムがエラーをスローすると、コードは実行を停止します。

エラーを事前にキャッチして処理すると、プログラムはエラーのあるコード ブロックをスキップし、プログラムの残りの部分の実行を続行できるようになります。

例外処理メソッド:

Try – Catch – Final – Throw – Throws は、Java の例外処理メソッドのリストです。それぞれを例を挙げて詳しく見てみましょう:

。試す

Try は、例外をスローする可能性のあるコードの行またはブロックを囲むために使用されます。内部の try ブロックを持つ try である、ネストされた try もあります。これらは同じ目的を果たします。

構文

try{

}

。キャッチ

catch は、try ブロックでスローされたエラーをキャッチするために使用されるコードのブロックです。

構文

try{

}
catch (Exception e){

}

複数の catch ブロック

public class JavaExceptionCodes {
    public static void main (String []args) {
        int x = 10;
        int y = 0;
        int z ;
        int nombas [] = {5, 6, 7, 8, 9};
        try {
            System.out.println(z = x / y);
            System.out.println(nombas[6]);
        }
        catch (ArithmeticException e){
            System.out.println("Can't divide by 0. Choose another number"   e);
        }
        catch(ArrayIndexOutOfBoundsException e){
            System.out.println("Array Out Of Bound"   e);
        }
        System.out.println("End");
    }
}

。ついに

最後に、オプションのコード ブロックで、通常は try および catch コード ブロックの後に配置されます。重要なコードを実行するために使用されます。 finally ブロックは、プログラムがエラーをスローするかどうかに関係なく、常に実行されます。

構文

try{

}
catch (Exception e){

}
finally{

}

。投げる

Throw は、メソッドまたはコード ブロック内で例外をスローするために使用されるキーワードです。

構文

public class JavaExceptionCodes {
    public static void main (String []args) {

           try { throw new ArithmeticException("Try Run");
           }
           catch (ArithmeticException e){
               System.out.println("Catch Exception Error");
           }

    }
}

。投げる

throws キーワードとは異なり、throws キーワードは例外をスローするために使用されません。ただし、メソッドに例外が存在する可能性があることが指定されています。 Throws はメソッド内ではなくメソッド シグネチャで使用されます。

例外処理のベストプラクティス

  1. try ブロックには複数のステートメント (コード行) を含めることができます。各ステートメントのエラーをキャッチするには、複数の catch ブロックを作成するのが最善です。

  2. 複数の catch ブロックを使用する場合は、常に例外のタイプを指定します。

  3. try ブロック内に複数のステートメントがあり、エラーのあるステートメントがわからない場合は、他の例外の最後に最後の一般例外を作成して、未知のエラーをキャッチします。

  4. 一般例外キャッチ ブロックは常に他のカスタム例外キャッチ ブロックの最後に配置します。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/akamzchidi/Exception-handling-in-java-f32?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3