21

通常、いずれかのクラスが拡張Exceptionされると、チェック例外になります。Runtime exception例外も拡張します。では、どうunchecked exceptionですか?

この特別な場合のために、コンパイラにカスタムチェックインがあるようですか?

編集:私はチェックされたv /sのチェックされていない例外とそれらの長所と長所など について適切な考えを持っています。私は答えのそれらの間の違いを受け入れません。

4

5 に答える 5

28

仕様のセクション 11.1.1に明示的に記載されています。

RuntimeExceptionそしてそのすべてのサブクラスは、まとめてランタイム例外クラスです。

未チェックの例外クラスは、実行時例外クラスとエラー クラスです。

チェックされた例外クラスは、チェックされていない例外クラス以外のすべての例外クラスです。つまり、チェックされる例外クラスは、RuntimeException とそのサブクラスおよび Error とそのサブクラスを除くすべての Throwable のサブクラスです。

そうです、コンパイラは間違いなく について知っていRuntimeExceptionます。

于 2012-07-18T18:48:22.950 に答える
10

はい。Anyは、 、、および (直接または間接の) サブクラスThrowableを除いて、チェック済み例外です。ErrorRuntimeException

ただし、これらはJVM ではなくコンパイラによってチェックされます。チェック例外はコンパイル時の機能であり、実行時の機能ではありません。(更新:そして、「JVM」ではなく「コンパイラ」を指定するように質問を編集したことがわかりました。☺)


もう少し詳しく説明します。. . 「チェック例外」インターフェースがあったわけではありません。RuntimeExceptionロジックは単純にハードコーディングされています。「またはのサブタイプでない限り、すべての例外クラスはチェック例外Errorです。

于 2012-07-18T18:27:40.433 に答える
1

ここに便利なリンクがあります: http://www.javapractices.com/topic/TopicAction.do?Id=129

チェックされていないものとチェックされているものの違いを説明し、いくつかの例を示します。

「やや紛らわしいですが、RuntimeException (未チェック) 自体が Exception (チェック済み) のサブクラスであることにも注意してください。」

于 2012-07-18T18:29:19.450 に答える