gpt4 book ai didi

Java - 为什么InputStream#read采用C风格设计?

转载 作者:行者123 更新时间:2023-12-02 09:06:19 25 4
gpt4 key购买 nike

由于 Java 支持异常,我认为尝试读取输入流末尾的字节时会抛出 EOFException ,例如

byte read() 抛出 EOFException、IOException

但事实上InputStream#read返回

the next byte of data, or -1 if the end of the stream is reached.

这让我想起了 C 中的 getchar。但另一方面它会抛出

IOException: if an I/O error occurs.

为什么要这样设计?

最佳答案

许多早期的 API 都不尽如人意,并且有很多讨论,设计者希望他们可以采取不同的方式。

我推测这不是其中之一。抛出“EOFException”可能会鼓励程序员尝试读取,直到捕获异常。这意味着异常处理将用作控制程序逻辑的一种方式,称为异常处理反模式

关于Java - 为什么InputStream#read采用C风格设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12225632/

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