0

自从 Java 中的 JDBC 桥被弃用以来,我一直在使用 UCanAccess 进行 JDBC 连接。但是 UCanAccess 不会以正常的 try-catch 形式抛出异常,而是立即将错误行打印到控制台。由于我的用户不会通过控制台访问软件,我想将我的所有控制台输出重定向到 JOptionPane 消息对话框,以便我的用户看到错误打印,而不是简单地浪费在不可见的控制台中. 这可能吗?我试过了System.setErr,但我只能重写 write() 方法,只输出一个 int?

4

1 回答 1

1

UCanAccess 以“正常形式”抛出异常,所以你的问题有点误导,你的假设是错误的。

它还在加载数据库时使用SQLWarning,请参阅有关它的 jdbc 接口(例如,如果它无法加载查询)。UCanAccess 控制台只是打印它们。

最后,在数据库损坏的情况下,数据完整性问题或其他非常严重的问题 jackcess 或 ucanaccess 可能会打印在 System.err 上。很明显,只要他们不阻塞,尽管严重,它可能会发生。这只是为了确保记录错误消息而不会阻止成功的数据库加载异常(所以我不能为它们使用 SQLWarning )。

对于那些特定问题,您可以将 System.err 消息重定向到 JOptionPane,但它们通常是关于 mdb/accdb 格式的技术性错误,因此我认为在用户界面中显示它们不是一个好主意。

将 system.err 重定向到特定的错误文件中(用于后续问题解决)要好得多。

于 2015-03-03T18:30:22.060 回答