为什么
首先,实际上它不会抛出任何异常,因为它的方法体是空的。其次,根据文档描述,它也不应该抛出任何异常,因为“关闭
这难道不是一个小错误吗?
是的,我知道它的超类
ByteArrayOutputStream
的close
声明中带有throws IOException
?首先,实际上它不会抛出任何异常,因为它的方法体是空的。其次,根据文档描述,它也不应该抛出任何异常,因为“关闭
ByteArrayOutputStream
没有任何效果”。这难道不是一个小错误吗?
是的,我知道它的超类
OutputStream
实现了Closable
接口,而后者的close
方法允许抛出IOException
。但是,没人禁止在ByteArrayOutputStream
中覆盖它,并定义一个不带异常声明的close
方法。(即使在Java的一些过时版本中禁止用一个抛出更多异常的方法去覆盖另一个抛出较少异常的方法,但改变ByteArrayOutputStream
的close
定义现在不会导致不兼容的变化。)