チェック例外と実行時例外の違い

トピック

Java プログラムのコンパイル時には無視できますが、実行時に発生する可能性のある例外は ( B )です。

A. 実行時例外

B. チェックされた例外

C. エラー エラー

D. コンパイル例外

この質問の答えは「B」ですが、なぜ B なのでしょうか?詳しく分析してみましょう。

チェックされた例外

チェック例外は、コンパイル時に処理する必要がある例外を指します。Java では、Exception クラスから継承されたすべての例外 (RuntimeException とそのサブクラスを除く) はチェック例外です。メソッドがチェック例外をスローする可能性がある場合、メソッドを呼び出すコードは例外をキャッチするか、上向きに例外をスローし続ける必要があります。

チェック例外は主に、ファイル読み取りエラー、ネットワーク接続エラーなど、プログラムの実行中に発生する可能性のある外部条件やエラーを表すために使用されます。これらの例外を捕捉して処理することにより、プログラムの堅牢性と信頼性を強化できます。

例:

実行時例外

実行時例外とは、プログラムの実行中に発生する異常な状況を指します。通常、コードの欠陥や期待を満たさない条件によって引き起こされます。コンパイル時例外とは異なり、実行時例外はコード内で明示的に処理したり宣言したりする必要がありません。一般的なランタイム例外には、NullPointerException、配列インデックスの範囲外の例外 (ArrayIndexOutOfBoundsException) などが含まれます。

エラーERROR

エラーはコーディングプロセスでのエラーです。例: パラメータの受け渡し、範囲外のデータ、コード エラーなど。

この時点では、基本的には誰でもこの問題を解決できるはずです。それが私たちを助けることができることを願っています。


異常な

例外とは、プログラムの実行中に発生するエラーまたは異常な状態です。例外は、プログラムが処理できないエラーまたは予期しない状況に遭遇したときにスローされます。例外には、構文エラー、論理エラー、実行時エラーなどがあります。これらの例外をキャッチして処理することで、プログラムはエラー状態に適切に対応できるようになり、堅牢性と信頼性が向上します。

Javaコードで例外を処理する方法

Java では、try-catch ステートメント ブロックを使用して例外を処理できます。try ブロックには例外をスローする可能性のあるコードが含まれており、catch ブロックは例外をキャッチして処理するために使用されます。

以下は、例外を処理するための基本的な構文構造です。

try {
    // 可能会引发异常的代码
} catch (ExceptionType1 exception1) {
    // 处理ExceptionType1类型的异常
} catch (ExceptionType2 exception2) {
    // 处理ExceptionType2类型的异常
} finally {
    // 可选的finally块,无论是否引发异常,都会执行其中的代码
}

try ブロック内のコードが例外をスローすると、プログラムは例外の種類に一致する catch ブロックに直ちにジャンプし、catch ブロックで定義されたコードを実行します。一致する catch ブロックがない場合、例外は処理のために呼び出し元に渡されます。

必要に応じて複数の catch ブロックを使用して、さまざまな種類の例外を処理できます。最後にfinallyブロックを追加して、リソース解放操作など、例外がスローされるかどうかに関係なく実行する必要があるコードを実行することもできます。

以下に例を示します。

 
try {
    // 可能会引发异常的代码
    int result = divide(10, 0);
    System.out.println("计算结果:" + result);
} catch (ArithmeticException e) {
    // 处理除以零的异常
    System.out.println("除数不能为零!");
} finally {
    // 无论是否引发异常,都会执行这里的代码
    System.out.println("程序结束");
}

// 自定义一个除法方法
public static int divide(int num1, int num2) {
    return num1 / num2;
}

Javaでthrowsキーワードを使用してメソッド宣言で例外をスローするにはどうすればよいですか?

メソッド宣言で throws キーワードを使用すると、メソッドの実行中に例外をスローし、その例外を、処理のためにメソッドを呼び出す上位層のメソッドに渡すことができます。throws キーワードを使用するための構文は次のとおりです。

修饰符 返回类型 方法名(参数列表) throws 异常类型1, 异常类型2, ... {
    // 方法体
}

メソッド宣言では、1 つ以上の例外タイプをカンマで区切って指定できます。メソッドの実行中に指定された例外が発生すると、例外がスローされて呼び出し元に渡されます。ファイルの読み取り

たとえば、次のメソッド宣言では throws キーワードを使用して IOException をスローします。

public void readFile(String filePath) throws IOException {
    // 读取文件的代码
}

readFile メソッドを呼び出す場合、呼び出し元は例外を処理するか、例外を上位メソッドに渡し続ける必要があります。

「throws」キーワードは複数の例外をスローできますか?

throwsキーワードは複数の例外をスローする可能性があります。メソッド宣言では、コンマを使用して複数の例外タイプを区切って、メソッドがこれらの例外をスローする可能性があることを示すことができます。これらの例外をスローする可能性のあるメソッドを呼び出す場合は、try-catch ブロックを使用するか、これらの例外を上向きにスローし続ける必要があります。

おすすめ

転載: blog.csdn.net/feng8403000/article/details/133080835