由于ByteArrayOutputStream只是写入内存,IOException因此永远不会发生.但是,由于OutputStream接口的约定,所有流操作都IOException在其throws子句中定义.
"处理"这种从未发生过的正确方法是什么IOException?只需将操作包装在空try-catch块中?
或者是否存在ByteArrayOutputStream可能抛出异常的实际情况?
(另请参阅:如何以安全可读的方式处理我知道永远不会抛出的IOException?)
编辑
正如Jon指出的那样,ByteArrayOutputStream并没有声明它定义throws的write方法的子句- 但是,它继承write(byte[])了OutputStream,并且确实抛出IOEXception(非常奇怪,BAOS不会覆盖此方法,因为它可以替换超类版本 -一次写一个字节 - arraycopy调用效率更高
java exception outputstream ioexception bytearrayoutputstream