我必须编写逻辑来检测哪行代码抛出了异常,以便我们稍后解决这个问题。异常对象的 getStackTrace() 为我们提供了一个堆栈跟踪列表,每个堆栈跟踪都有级别。我对获得引发异常的最低位置不感兴趣,而是对负责传递参数的类方法感兴趣。这是我要问的一个例子
class Test {
void divide() {
try{
float i = 1/0
}
catch(Exception e){
def v = e.getStackTrace()[0]
println v.getClassName()
}
}
}
这将打印类 java.math.BigDecimal 但我对获取 Test 类很感兴趣,所以我可以去它的划分并修复这个错误。现在,测试出现在我在运行时无法知道的第 n 行中。一种方法是迭代堆栈跟踪列表并尝试查找自定义开发的类,但如何检测呢?或者,如果有一些库函数已经这样做了,那就太好了。