我运行以下代码来获取 .class 文件中的异常处理程序:
public void getException(SootMethod method){
DavaBody db = (DavaBody) method.retrieveActiveBody();
IterableSet excepFacts = db.get_ExceptionFacts();
Iterator<ExceptionNode> it = excepFacts.iterator();
while(it.hasNext()){
ExceptionNode en = it.next();
...
}
}
运行上述代码后出现错误:
Exception in thread "main" java.lang.ClassCastException:
soot.jimple.JimpleBody cannot be cast to soot.dava.DavaBody
该方法method.retrieveActiveBody()
返回Body类型,而不是JimpleBody,那么为什么会发生此错误?