0Pricing
Java Academy · レッスン

チェック例外と非チェック例外

Javaにおけるチェック例外と非チェック例外の違いを理解します。

「チェック例外と非チェック例外」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。

導入

Javaの例外には、チェック例外と非チェック例外の2種類があります。この違いを知ると、メソッドを正しく設計できます。

チェック例外

チェック例外はExceptionを継承します(ただしRuntimeExceptionは除きます)。コンパイラーは、これらを処理するか、throwsで宣言するよう要求します。

コード: チェック例外IOException

IOExceptionはチェック例外です。これを捕捉するか、メソッドシグネチャで宣言する必要があります。

public class Main {
  public static void main(String[] args) {
    try {
      java.io.FileReader fr = new java.io.FileReader("missing.txt"); // checked exception
      fr.read();
      fr.close();
    } catch (java.io.IOException e) {
      System.out.println("Handled IOException: " + e.getMessage());
    }
  }
}

非チェック例外

非チェック例外はRuntimeExceptionを継承します。コンパイラーは、これらの処理を要求しません。例:NullPointerException、ArithmeticException。

コード: 非チェック例外NPE

NullPointerExceptionは非チェック例外です。捕捉することはできますが、コンパイラーから強制されることはありません。

public class Main {
  public static void main(String[] args) {
    String s = null;
    try {
      System.out.println(s.length()); // unchecked exception
    } catch (NullPointerException e) {
      System.out.println("Caught NullPointerException");
    }
  }
}

コード: throws宣言

チェック例外はthrowsで宣言できます。呼び出し元は、それらを処理するか、さらに上位へ伝播させる必要があります。

public class Main {
  static void risky() throws java.io.IOException {
    throw new java.io.IOException("I/O problem");
  }
  public static void main(String[] args) {
    try {
      risky();
    } catch (java.io.IOException e) {
      System.out.println("Handled in main: " + e.getMessage());
    }
  }
}

チェック例外と非チェック例外の確認

クイックチェック:チェック例外と非チェック例外について正しい説明はどれですか。

まとめ

まとめ:チェック例外(IOException)は宣言または処理する必要があります。非チェック例外(RuntimeException)の処理は任意です。

よくある質問

「チェック例外と非チェック例外」レッスンは無料ですか?

はい。「チェック例外と非チェック例外」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。

「チェック例外と非チェック例外」で何を学びますか?

Javaにおけるチェック例外と非チェック例外の違いを理解します。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「チェック例外と非チェック例外」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. try/catch/finally
  2. チェック例外と非チェック例外
  3. スタックトレースの読み方
← Java Academyに戻る