Ben*_*gel 23 java api exception
几天前,我意识到PrintWriter(以及PrintStream)在写,刷新或关闭时都不会抛出IOException.
相反,它会trouble=true在发生错误时设置内部标志().
它不可能得到确切的异常,但只有在有一些异常时才会出现(checkError()).
我的问题是:为什么会有这样的行为?API设计不是那么糟糕吗?
eri*_*son 10
我认为既然System.out和System.err是的情况下PrintStream,被提供了一些更轻松的错误处理.正如其他海报所提到的那样,这可能是为1995年左右从C/C++过渡的人们铺平道路.当添加Reader/Writer API时,PrintWriter创建了与现有版本并行的版本PrintStream.
一种非常需要此行为的应用程序是日志记录.日志记录是较大应用程序的辅助工具.通常,如果日志记录失败,则不希望整个应用程序失败.因此,System.err至少忽略异常是有道理的.
| 归档时间: |
|
| 查看次数: |
4730 次 |
| 最近记录: |