可能重复:
为PrintWriter和PrintStream的从未引发IOException
也许这个问题有点“怪”。 但我很好奇,想知道为什么两者的PrintWriter和PrintStream的不检查自动运行时异常,和他们提供了一个checkError()方法。
感谢所有提前。
可能重复:
为PrintWriter和PrintStream的从未引发IOException
也许这个问题有点“怪”。 但我很好奇,想知道为什么两者的PrintWriter和PrintStream的不检查自动运行时异常,和他们提供了一个checkError()方法。
感谢所有提前。
对于PrintStream的这往往是写到std出或犯错,这些流可能已被关闭或丢弃,但你不希望程序作为一个结果意外失败。
PrintWriter的是在许多方面为PrintStream的作家版本,但我不知道它是重复的PrintStream的错误是一个好主意。 ;)
事实上PrintWriter的不报告IOException异常使其成为编写文本到一个Socket,你经常需要知道连接失败一个糟糕的选择。
我认为这是主要是因为System.err的是一个PrintStream。
当你在处理一个catch块)例外,调用e.printStackTrace(常见并将其写入System.err的。 如果该调用抛出一个异常,你就失去了原来的异常,并从你的代码抛出的PrintStream的错误信息。 那么你就需要一个额外的try / catch你的catch块内,以防止这个问题,这使得大混乱。
需要注意的是JDK 1.7的地址从catch块抛出异常的问题,并允许您访问这两个例外。