我有一个函数,其中使用的是methodaccesor的invoke函数,问题是我使用的应用程序非常庞大,所以有时抛出这个异常InvocationTargetException并且导致这种情况恰好是ArrayIndexOutofBounds Exception。发生的问题是比较少8%的事务导致这个(我无法复制这种情况),我无法弄清楚是什么/如何导致这个
你能不能就这个问题向我提出建议,如何解决这个问题?
我在这里使用了反射器的PropertyUtils类getindexedproperty导致InvocationTargetException这个东西无法复制问题可能导致这种情况,因为它很少发生
答案 0 :(得分: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);
}
你永远不会再担心代码中的这些异常会从哪里冒出来。
当你访问每个尝试捕获时,问问自己你是否真的应该对这些失败感到强烈;有时最好的办法是让代码快速失败,不首先捕获异常。当应用程序由于某些状态不正确的代码/数据而失败时,您会很快发现并获得路由图(堆栈跟踪)到根本原因。