如何附加到 Java 异常?
2022-09-05 00:26:26
我是Java和一般例外的新手。
在我之前的 C/Perl 编程时代,当我编写库函数时,错误由布尔标志以及某种字符串传递回来,并带有人类友好(或程序员友好)错误消息。Java 和 C++都有异常,这很方便,因为它们包含堆栈跟踪。
我经常发现,当我发现一个异常时,我想加两分钱,然后把它传下去。
如何做到这一点?我不想扔掉整个堆栈跟踪...我不知道失败发生得有多深,原因是什么。
我有一个小的实用程序库,用于将堆栈轨道(来自异常对象)转换为字符串。我想我可以将其附加到我的新异常消息中,但这似乎是一个黑客攻击。
下面是一个示例方法。建议?
public void foo(String[] input_array) {
for (int i = 0; i < input_array.length; ++i) {
String input = input_array[i];
try {
bar(input);
}
catch (Exception e) {
throw new Exception("Failed to process input ["
+ ((null == input) ? "null" : input)
+ "] at index " + i + ": " + Arrays.toString(input_array)
+ "\n" + e);
}
}
}