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 次 |
| 最近记录: |