java库代码在"正常"处理期间抛出并捕获大量异常是否正常?

Dan*_*ger 8 java

更多作为实验,我决定在Eclipse调试器中启用以下断点:Throwable [Include Subclasses]: caught and uncaught.然后我让我的代码(据我所知,它运行"很好")在调试器下运行,并且惊讶地发现当我的代码是标准的J2SE库代码时,抛出并捕获了许多异常(我以前不知道).正常运行,我所知道的一切.

例如,这里只是一些的Java框架的功能,我发现抛出异常:URLClassLoader.findClass,FileDirContext.lookup,和WebappClassLoader.findClassInternal.

这被认为是Java应用程序的正常行为吗?这是我应该研究的东西吗?据我所知,我的代码似乎运行良好.

Rad*_*dim 0

类加载期间抛出的异常是 Java 历史早期的遗留物,当时类加载被设计为使用它们作为一种方式来传达某些类加载器无法找到类的信息。现在它不被认为是一个好的模式,但它仍然存在,并且可能永远不会改变,因为它是 API 的一部分。没什么好害怕的。