[英]Java System.out.println repeated 3 times when using System.in.read()
[英]System.out.println() don't throws Exception, but System.in.read() throws Exception, Why?
我是从Java™I / O(第二版)获得的,这是Elliotte Rusty Harold撰写的:
将try / catch块包装在对System.out.println()的每次调用周围会很不方便,Sun决定让PrintStream(以及后来的PrintWriter)捕获并吃掉print()或println()方法中引发的任何异常。 如果您确实想在print()或println()方法中检查异常,则可以调用checkError():
公共布尔checkError()
如果此打印流上发生异常,则checkError()方法返回TRue,否则返回false。 它仅告诉您发生了错误。 它不会告诉您发生了哪种错误。 如果您需要更多有关该错误的信息,则必须使用其他输出流或writer类。
我只是想测试此checkError方法的真实返回类型。
有关为此创建一些实际方案的任何线索... :-)
这有两个场景,其中checkError()
将返回true
:
场景1
最终,文件系统将填满,并且写入将失败。
场景2
closeConnection
现在写入将失败,因为HTTP连接不再处于将数据发送到远程服务器的正确状态。
从您应该能够使它们给您带来错误的意义上说,这些方案是实用的。 但是它们并不完全现实。 例如,您通常不会使用PrintStream将POST数据发送到HTTP服务器。 但这是OutputStream API和PrintStream API之间差异的根源。 OutputStream / Writer API专为应用程序需要知道输出是否失败的用例而设计。 PrintStream / PrintWriter API专为“轻量级”用例而设计,例如将用户消息输出到处理失败的控制台,这很浪费程序员的精力。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.