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