0

当存储的 Java 类遇到未处理的异常时,将完整堆栈跟踪返回到 PL/SQL 以进行正确日志记录的最佳方法是什么?

在我的课程的初步测试中,我遇到了 NullPointer,Oracle 将其显示为未处理的 Java 异常。我得到的唯一信息是它是一个 NullPointer——我不知道它在代码中的位置。

显然,我应该能够通过严格验证客户端提供的数据和单元测试来避免大多数异常,但万一发生了什么?

我正在考虑捕获异常,将它们的堆栈跟踪存储在一个数组中并将该数组返回给 PLSQL ......但我宁愿避免需要管理所有这些额外的返回值。

肯定已经有一些东西了,不幸的是我的谷歌fu让我失望了......

4

1 回答 1

2

您可以获得完整的堆栈跟踪并将它们转换为 aString并将其传递给以PL/SQL进行日志记录。我在这里得到了从另一个 SO 问题转换Stacktrace为的简单解决方案String

StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
t.printStackTrace(pw);
String stackTrace = sw.toString(); // Send it to PL/SQL
于 2014-06-26T15:47:40.163 回答