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,我应该自己编写一个代码? 抱歉,这只是一个微妙的疑问,但是我在代码中经常使用此模式,所以我想确保自己做对了。