Ton*_*ony 10 java exception outputstream ioexception bytearrayoutputstream
由于ByteArrayOutputStream
只是写入内存,IOException
因此永远不会发生.但是,由于OutputStream
接口的约定,所有流操作都IOException
在其throws
子句中定义.
"处理"这种从未发生过的正确方法是什么IOException
?只需将操作包装在空try-catch
块中?
或者是否存在ByteArrayOutputStream
可能抛出异常的实际情况?
(另请参阅:如何以安全可读的方式处理我知道永远不会抛出的IOException?)
编辑
正如Jon指出的那样,ByteArrayOutputStream
并没有声明它定义throws
的write
方法的子句- 但是,它继承write(byte[])
了OutputStream
,并且确实抛出IOEXception
(非常奇怪,BAOS
不会覆盖此方法,因为它可以替换超类版本 -一次写一个字节 - arraycopy
调用效率更高
Jon*_*eet 10
好吧,ByteArrayOutputStream
并没有声明它的任何方法抛出IOException
除了writeTo
和close
.(close
老实说,我不知道为什么还要宣布它.)
如果你有一个类型的引用,OutputStream
当然你还是会看到抛出声明的声明.
我不会使用一个空的catch块 - 我会抛出类似IllegalStateException
或类似的未经检查的异常:它意味着你处于一种你真正没想到的情况,并且出现了严重错误.
归档时间: |
|
查看次数: |
7350 次 |
最近记录: |