8

さらに実験として、Eclipse デバッガーで次のブレークポイントを有効にすることにしましたThrowable [Include Subclasses]: caught and uncaught。次に、自分のコード (私の知る限り「問題なく」実行されています) をデバッガーの下で実行しました。コードが正常に動作していないときに、標準の J2SE ライブラリ コードによって (以前は知られていない) 多数の例外がスローされ、キャッチされているのを見て驚きました。私が知っている限り、正常に実行されています。

たとえば、例外をスローしていることがわかった Java フレームワーク関数の一部を以下に示します: URLClassLoader.findClassFileDirContext.lookup、およびWebappClassLoader.findClassInternal.

これは、Java アプリケーションの通常の動作と見なされますか? これは私が調べる必要があるものですか?私の知る限り、私のコードは正常に動作しているようです。

4

2 に答える 2

2

このようにコードを設計するのは良くありませんが (例外は遅く、例外的な状況で使用する必要があります)、Bhesh Gurung のコメントはこれについて考える正しい方法です。依存しているコードの仕様に従い、実装について心配する必要はありません。

于 2012-10-18T17:40:44.277 に答える
0

クラスローディング中にスローされる例外は、一部のクラスローダーがクラスを見つけることができなかったことを伝える方法としてクラスローディングを使用するように設計されていた Java の歴史の初期の遺物です。現在は良いパターンとは見なされていませんが、API の一部であるため、変更されることはなく、今後も変更されることはありません。何も恐れることはありません。

于 2012-10-18T17:45:26.947 に答える