几天前,我意识到PrintWriter(以及PrintStream)在写入,刷新或关闭时
从不会抛出IOException 。
而是trouble=true
在发生错误时设置内部标志()。
不可能获得确切的异常,只有 在
存在某些异常(checkError())的情况下。
我的问题是:为什么一个人要发生这种行为?API设计不是很糟糕吗?
我认为由于是System.out
和System.err
的实例PrintStream
,因此提供了一些更轻松的错误处理。就像其他张贴者所提到的那样,这可能是为从1995年左右开始从C
/ C ++过渡的人们铺平道路。添加了Reader / Writer API时,PrintWriter
它便与现有的并行PrintStream
。
一个非常需要这种行为的应用程序是日志记录。日志记录是大型应用程序的辅助。通常,如果日志记录失败,则不希望整个应用程序失败。因此,System.err
至少忽略异常是有意义的。
本文向大家介绍PrintStream和PrintWriter的区别简介,包括了PrintStream和PrintWriter的区别简介的使用技巧和注意事项,需要的朋友参考一下 PrintStream和PrintWriter的API几乎相同,都能输出各种形式的数据,构造方法也几乎相同 PrintWriter多了个接受Writer参数 API比较: 那么,它们的区别究竟在哪里?来自stackflow
我正在学习Java8以及更多关于“可完成的未来”的细节。以下是有趣的教程:https://www.callicoder.com/java-8-completablefuture-tutorial/ 我编写了以下Java类: (为了运行该代码,您需要resteasy-Client库) 但是我不明白为什么即使收集了所有的响应,主方法也不会终止... 我错过什么了吗?是否有一些“完整”的方法可以在任何地
我想知道为什么java编译器允许在方法声明中抛出,而方法永远不会抛出异常。因为“throws”是处理异常的一种方式(告诉调用方处理它)。 因为有两种处理异常的方法(抛出和try/catch)。在try/catch中,它不允许捕获try块中未抛出的异常,但它允许在不抛出异常的方法中抛出。
问题内容: 我正在开发游戏,但扫描仪遇到了一个小问题。我收到了一个从未关闭过的资源泄漏扫描程序。 但是我认为我的扫描仪在没有关闭之前就可以正常工作。但是现在不是。有人可以帮我吗? 问题答案: 我假设您正在使用Java 7,因此会收到编译器警告,当您不关闭资源时,通常应在finally块中关闭扫描程序。 甚至更好:使用新的 Try with resource语句 :
问题内容: 看过很多论坛,但没有找到答案…简单的东西,用@PostLoad注释的方法永远不会被调用…通过@EntityListeners添加了侦听器,但问题仍然存在。我正在使用基于SessionFactory的配置。 问题答案: 当使用基于基础的配置时,EJB3 注释不起作用,后期加载方法将永远不会被调用。 使用Hibernate的Interceptor或事件或基于基本的配置。
问题内容: 我正在使用Flask-WTF: 这是我的表格: 这是控制器: 现在的问题是,如果您查看我的打印语句,它将始终打印已提交的内容,但从不打印有效的内容,并且永远不会执行validate_on_submit()。为什么? 问题答案: 您没有在HTML表单中插入CSRF字段。 添加到模板(docs)后,表单将按预期验证。 验证表单后添加,以查看出现的错误。 在验证之前将为空。在这种情况下,会出