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