我正在尝试实现一个过程内分析,该分析为每个方法计算该方法可能抛出的异常集,包括通过 throw 语句显式抛出的运行时异常。
到目前为止,我完全不知道如何从 SOOT 开始。谁能给我第一个提示?
我正在尝试实现一个过程内分析,该分析为每个方法计算该方法可能抛出的异常集,包括通过 throw 语句显式抛出的运行时异常。
到目前为止,我完全不知道如何从 SOOT 开始。谁能给我第一个提示?
您应该查看ThrowsAnalysis的实现。可以对分析进行参数化,以对哪个语句可以抛出哪些异常做出不同的假设。然而,这种分析是过程内的,也就是说,必须对方法调用做出粗略的假设。如果您想对方法调用进行精确建模,那么我建议您使用Heros进行过程间分析。
干杯,埃里克
get(int)
方法,则必须在 A、B 和 C 中包含相应的方法。您可以使用步骤 1 中的索引找到它们。如果这样做的好处证明成本是合理的,我会非常非常惊讶。
这是问题区域的一个示例。如果使用HashMap
get()
方法,则使用Object
equals()
andhashCode()
方法。每个类都直接或间接扩展,因此任何或方法中Object
的任何 throw 语句的参数类型都在列表中。equals()
hashCode()