5

javaのランタイム例外の命名と混同しています。SQLexceptionのようなこれらのチェックされた例外は、プログラムの実行中にも発生します。なぜそれらのチェックされていないものだけがランタイム例外と呼ばれるのですか?おそらく「ランタイム」について誤解しているのでしょう。

アドバイスありがとうございます。

4

3 に答える 3

5

あなたの混乱は理解できます。すべての例外は実行時に発生します!

クラスにそのように名前を付ける唯一の理由は、それがコンパイル時に処理する必要のない例外であることを明確にするためです。

他のすべてのいわゆる「チェック済み」例外とは対照的に、プログラマは句を使用してスローされる例外を宣言するRuntimeExceptions必要はありません。throws

于 2011-06-20T20:07:45.490 に答える
2

RuntimeExceptionのサブクラスですjava.lang.ExceptionRunTimeExceptionsほとんどの場合、プログラミングエラーまたは/および不変条件が満たされていない(渡されるべきではないときにNullが渡された)結果であるため、java.lang.Exception(チェックされた例外)のようにそれらをキャッチする必要はありません。ランタイム システムが回復するためにできることはほとんどないため、それらをキャッチすることはできません。

ランタイムというフレーズは、プログラムが実行されているときに発生することを意味しているだけだと思います(明らかに!!)。重要なことに、コンパイラは Checked Exceptions のようにコードにチェックを強制的に組み込むことはありません。クラスに適切な名前を付けるのが難しい例だと思います。たとえば、デフォルトでチェックされていない例外があり、例外と呼ばれる可能性があると思います。その後、サブクラス化して CheckedException を提供します。誰もが java.lang.Exception を Checked Exception と呼んでいますが、クラス名からは明確ではありません。しかし、彼らはそうしませんでした。

> java.lang.Exception is referred to as "Checked Exception" 
> java.lang.RuntimeException is referred to as "Unchecked Exception"
于 2011-06-20T20:08:29.177 に答える