Javaチュートリアル

Javaホーム Javaイントロ Javaはじめに Java構文 Javaコメント Java変数 Javaデータ型 Java型キャスト Java演算子 Java文字列 Java数学 Javaブール値 Java If ... Else Javaスイッチ JavaWhileループ JavaForループ Javaブレーク/続行 Java配列

Javaメソッド

Javaメソッド Javaメソッドパラメータ Javaメソッドのオーバーロード Javaスコープ Java再帰

Javaクラス

Java OOP Javaクラス/オブジェクト Javaクラス属性 Javaクラスメソッド Javaコンストラクタ Java修飾子 Javaカプセル化 Javaパッケージ/ API Javaの継承 Javaポリモーフィズム Java内部クラス Java抽象化 Javaインターフェイス Java列挙型 Javaユーザー入力 Java日付 Java ArrayList Java LinkedList Java HashMap Java HashSet Javaイテレータ Javaラッパークラス Javaの例外 Java RegEx Javaスレッド Javaラムダ

Javaファイル処理

Javaファイル Javaのファイルの作成/書き込み Java読み取りファイル Javaファイルの削除

Javaハウツー

2つの数字を追加する

Javaリファレンス

Javaキーワード Java文字列メソッド Java数学メソッド

Javaの例

Javaの例 Javaコンパイラ Java演習 Javaクイズ Java証明書


Javaの例外-試してください...キャッチ


Javaの例外

Javaコードを実行すると、プログラマーによるコーディングエラー、誤った入力によるエラー、その他の予期しないエラーなど、さまざまなエラーが発生する可能性があります。

エラーが発生すると、Javaは通常停止し、エラーメッセージを生成します。これの専門用語は次のとおりです。Javaは例外をスローします(エラーをスローします)。


Javaを試してキャッチ

このtryステートメントを使用すると、実行中にエラーをテストするコードのブロックを定義できます。

このcatchステートメントを使用すると、tryブロックでエラーが発生した場合に、実行するコードのブロックを定義できます。

trycatchキーワードはペアになっています

構文

try {
  //  Block of code to try
}
catch(Exception e) {
  //  Block of code to handle errors
}

次の例を考えてみましょう。

myNumbers [10]が存在しないため、これによりエラーが生成されます。

public class Main {
  public static void main(String[ ] args) {
    int[] myNumbers = {1, 2, 3};
    System.out.println(myNumbers[10]); // error!
  }
}

出力は次のようになります。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
        at Main.main(Main.java:4)

エラーが発生した場合は、を使用try...catchしてエラーをキャッチし、それを処理するためのコードを実行できます。

public class Main {
  public static void main(String[ ] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    }
  }
}

出力は次のようになります。

Something went wrong.

ついに

このステートメントを使用すると、結果に関係なく、のfinally後にコードを実行できます。try...catch

public class Main {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    } finally {
      System.out.println("The 'try catch' is finished.");
    }
  }
}

出力は次のようになります。

Something went wrong.
The 'try catch' is finished.


throwキーワード

このthrowステートメントを使用すると、カスタムエラーを作成できます。

このステートメントは、例外タイプthrowと一緒に使用されます。Javaで 使用できる例外タイプには、、、、、などがありますArithmeticExceptionFileNotFoundExceptionArrayIndexOutOfBoundsExceptionSecurityException

年齢が18歳未満の場合は、例外をスローします(「アクセスが拒否されました」と印刷します)。18歳以上の場合は、「アクセス許可」と印刷してください。

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new ArithmeticException("Access denied - You must be at least 18 years old.");
    }
    else {
      System.out.println("Access granted - You are old enough!");
    }
  }

  public static void main(String[] args) {
    checkAge(15); // Set age to 15 (which is below 18...)
  }
}

出力は次のようになります。

Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
        at Main.checkAge(Main.java:4)
        at Main.main(Main.java:12)

20の場合、例外は発生しません。

checkAge(20);

出力は次のようになります。

Access granted - You are old enough!

エクササイズで自分をテストする

エクササイズ:

以下のコードでエラーを処理するために不足している部分を挿入します。

 {
  int[] myNumbers = {1, 2, 3};
  System.out.println(myNumbers[10]);
}  (Exception e) {
  System.out.println("Something went wrong.");
}