如何检测throw语句是否发生在catch中



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

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

是否可以访问每个catch块的显式开始/结束范围以迭代其单元以检查是否存在throw语句?知道我该怎么做吗?

看看你的标签,我假设你使用的是Soot

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

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

相关内容

  • 没有找到相关文章

最新更新