Questions tagged «effective-java»

5
什么是AssertionError?在那种情况下,我应该从自己的代码中抛出它?
在“ Effective Java,第二版”书的第2项中,有此代码段,其中的作者希望禁止空初始化对象。 class Example { private Example() { throw new AssertionError(); } } 引发异常的类型使我感到困惑。 我不知道AssertionError是因为缺少更合适的错误还是因为这种方式而引发了。 据我了解,当assert语句失败时,框架会抛出此错误。另外,在Javadoc中,它只是写成的 抛出[AssertionError]来表明断言失败。 但是我在这里看不到任何断言(真假陈述)受到侵犯。当然,“您不得实例化此类的一个项目”声明已被违反,但是如果这是其背后的逻辑,那么我们都应该AssertionError到处抛出s,这显然不会发生。 FWIW,我刚扔了一个 new IllegalStateException("Must not instantiate an element of this class") 那有什么问题吗?在那种情况下AssertionError,我应该自己编写一个代码? 抱歉,这只是一个微妙的疑问,但是我在代码中经常使用此模式,所以我想确保自己做对了。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.