gpt4 book ai didi

Java:写入 ByteArrayOutputStream 时出现 IOException?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:11:23 25 4
gpt4 key购买 nike

ByteArrayOutputStream简单地写入内存,一个IOException永远不应该发生。但是,因为契约(Contract)的OutputStream接口(interface),所有流操作定义IOException在他们的 throws条款。

“处理”这个从未发生过的 IOException 的正确方法是什么? ?只需将操作包装在一个空的 try-catch 中堵塞?

或者有没有实际情况ByteArrayOutputStream可以抛出异常吗?

(另请参阅:How can I handle an IOException which I know can never be thrown, in a safe and readable manner?)

编辑

正如乔恩指出的那样,ByteArrayOutputStream没有声明 throws关于 write 的条款它定义的方法——但是,它继承了write(byte[])来自 OutputStream , 而那个确实抛出了 IOEXception (很奇怪 BAOS 不会覆盖此方法,因为它可以用更高效的 arraycopy 调用替换父类(super class)版本——一次写入一个字节)

最佳答案

嗯,ByteArrayOutputStream 没有声明它的任何方法抛出 IOException 除了 writeTo关闭。 (老实说,我不知道为什么 close 仍然声明它。)

当然,如果您有一个 OutputStream 类型的引用,您仍然会看到它的抛出声明。

我不会使用空的 catch block - 我会抛出类似 IllegalStateException 或类似的未经检查的异常:这意味着您处于真正的情况别指望,出了大问题。

关于Java:写入 ByteArrayOutputStream 时出现 IOException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6271934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com