gpt4 book ai didi

java - 处理 Oracle DB 存储的 Java 类中的异常

转载 作者:行者123 更新时间:2023-12-01 12:48:39 24 4
gpt4 key购买 nike

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

在我的类(class)的初步测试中,我遇到了 NullPointer,Oracle 将其显示为未处理的 Java 异常。我得到的唯一信息是它是一个 NullPointer - 我没有得到任何关于它在代码中位置的提示。

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

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

这方面肯定已经有一些东西了,不幸的是我的 Google-fu 失败了......

最佳答案

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

StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
t.printStackTrace(pw);
String stackTrace = sw.toString(); // Send it to PL/SQL

关于java - 处理 Oracle DB 存储的 Java 类中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24434739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com