0

我有一个使用methodaccesor的调用函数的函数,问题是正在使用的应用程序非常庞大,所以有时会抛出这个异常InvocationTargetException,而导致这种情况的原因恰好是ArrayIndexOutofBounds异常。发生的问题是相对少于 8% 的事务导致这种情况(我无法复制这种情况),我无法弄清楚是什么/如何导致这种情况

各位大神可以给我关于这个问题的建议吗,如何解决?

我在这里使用反射器的 PropertyUtils 类 getindexedproperty 导致 InvocationTargetException 事情无法复制问题可能导致这种情况的原因,因为它很少发生

4

1 回答 1

0

您可能正遭受捕获异常并且没有记录正确堆栈跟踪的代码的困扰。

更改代码中的所有此类实例以执行此操作:

try {
    // dangerous stuff here
} catch (SomeException e) {
    // Personally, I like to send a stack trace to stderr.
    // You may prefer to print this to your log, eg if you don't capture stderr,
    // or won't/can't for whatever reason.
    e.printStackTrace(System.err);
}

而且您再也不会对代码中的这些异常从哪里冒泡而感到茫然。

当您访问每个 try-catch 时,问问自己是否真的应该对此类失败保持稳健;有时最好的办法是让代码快速失败,而不是一开始就捕获异常。当应用程序由于某些代码/数据处于不正确的状态而失败时,您将快速发现并获得根本原因的路线图(堆栈跟踪)。

于 2013-12-19T05:07:13.767 回答