我试图识别在catch块内发生throw语句的情况。例如:
catch(MyException e){
throw e;
}
catch(Exception e){
throw new AnotherType();
}
是否可以访问每个catch块的显式开始/结束范围以迭代其单元以检查是否存在throw语句?知道我该怎么做吗?
看看你的标签,我假设你使用的是Soot
您可以使用正在查看的JimpleBody的陷阱来确定语句是否在try/catch块中。只需调用body.getTraps()
如果您只是想将此作为静态代码分析,我建议您在IDE的查找操作中使用正则表达式来定位catch括号内抛出的任何实例。当然支持IntelliJ.