【发布时间】:2011-03-29 17:31:02
【问题描述】:
我是 Java 新手,一般来说都是例外。
在我之前的 C/Perl 编程时代,当我编写一个库函数时,错误是通过一个布尔标志以及某种带有人类友好(或程序员友好)错误消息的字符串传递回来的。 Java 和 C++ 有异常,这很方便,因为它们包含堆栈跟踪。
我经常发现当我捕捉到一个异常时,我想加我的两分钱,然后把它传递出去。
如何做到这一点?我不想丢弃整个堆栈跟踪...我不知道故障发生的深度以及原因。
我有一个小实用程序库来将堆栈跟踪(从异常对象)转换为字符串。我想我可以将它附加到我的新异常消息中,但这似乎是一个 hack。
下面是一个示例方法。建议?
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);
}
}
}
【问题讨论】:
-
彼得:谢谢你的提示。我会这样做的。
标签: java exception stack-trace