我正在尝试实现一个过程内分析,为每个方法计算方法可能引发的异常集,包括通过throw语句显式抛出的运行时异常。
到目前为止,我完全迷失了如何使用SOOT启动它。任何人都可以给我一个第一个暗示吗?
答案 0 :(得分:1)
您应该查看ThrowsAnalysis的实现。可以对分析进行参数化,以便对哪个语句可以抛出哪些异常做出不同的假设。然而,这种分析是程序内的,即必须对方法调用做出粗略的假设。如果你想精确地建模方法调用,那么我建议用Heros制作一个程序间分析。
干杯, 埃里克
答案 1 :(得分:-1)
get(int)
方法,则必须在A,B和C中包含相应的方法。您可以使用步骤1中的索引找到它们。如果从中获益可以证明成本,我将非常非常惊讶。
以下是问题区域的一个示例。如果您使用HashMap
get()
方法,则可以使用Object
equals()
和hashCode()
方法。每个类都直接或间接扩展Object
,因此任何equals()
或hashCode()
方法中任何throw语句的参数类型都在列表中。