java库代码抛出是否正常?在“正常”处理过程中遇到很多异常?

时间:2012-10-18 17:28:15

标签: java

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

例如,以下是我发现抛出异常的一些Java框架函数:URLClassLoader.findClassFileDirContext.lookupWebappClassLoader.findClassInternal

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

2 个答案:

答案 0 :(得分:2)

虽然以这种方式设计代码是不好的(异常很慢,并且应该用于特殊情况),Bhesh Gurung的评论是思考这个问题的正确方法。遵循您所依赖的代码规范,不要担心实现。

答案 1 :(得分:0)

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