0

我试图确定在 catch 块内发生 throw 语句的情况。例如:

catch(MyException e){
   throw e;
}
catch(Exception e){
    throw new AnotherType();
}

是否可以访问每个 catch 块的显式开始/结束范围以迭代其单元以检查是否存在 throw 语句?关于我如何做到这一点的任何想法?

4

2 回答 2

1

查看您的标签,我假设您正在使用 Soot。

您可以使用正在查看的 JimpleBody 的陷阱来确定语句是否在 try/catch 块中。只需调用 body.getTraps()。

于 2014-07-25T13:22:16.307 回答
0

如果您只是想将此作为静态代码分析,我建议您在 IDE 的查找操作中使用正则表达式来定位 catch 括号内的任何抛出实例。IntelliJ 中当然支持。

于 2014-07-15T18:01:57.213 回答