[英]How to make a java program to print both out.println() and err.println() statements?
[英]Override System.out/err.println
自从Java中弃用JDBC Bridge以来,我一直在使用UCanAccess进行JDBC连接。 但是,UCanAccess不会以普通try-catches的形式抛出异常,而是立即将错误行打印到控制台。 由于我的用户将无法通过控制台访问该软件,因此我想将所有控制台输出重定向到JOptionPane消息对话框,以便用户看到错误打印,而不是简单地浪费在不可见的控制台中。 这可能吗? 我已经尝试过System.setErr
,但是我只能覆盖write()方法,仅输出int吗?
UCanAccess会以“正常形式”引发异常,因此您的问题有点令人误解,并且您的假设是错误的。
此外,它在加载数据库时使用SQLWarning ,请参见有关它的jdbc接口(例如,如果它无法加载查询)。 UCanAccess控制台仅打印它们。
最后,在数据库损坏的情况下,System.err上可能会打印出数据完整性问题或其他严重性非常高的问题jackcess或ucanaccess。 显然,即使严重性没有阻止 ,也可能发生这种情况。 只是为了确保在记录错误消息的同时不会阻止带有Exception的成功db加载(因此我不能对它们使用SQLWarning)。
对于那些特定的问题,您可以将System.err消息重定向到JOptionPane,但是它们通常是有关mdb / accdb格式的技术性错误,因此我认为在用户界面中显示它们不是一个好主意。
而是将system.err重定向到特定的错误文件中(用于后续的问题解决)要好得多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.