概要分析和记录工具 - 发行说明


1.0 局限性
   1.1 概要分析过滤器在某些情况下失败

1.0 局限性

1.1 概要分析过滤器在某些情况下失败

问题:

如果存在诸如如下所示的过滤器 B,则过滤器 A 将不起作用:

B 放置在 A 之前,并且与 B 匹配的类也与 A 匹配。

例如,如果过滤器看起来如下所示:

ClassA* method* INCLUDE * * EXCLUDE

这样,第一个过滤器将不正确地包括 ClassABC 中的方法 initialize(),这是因为它的类名与模式 classA* 匹配,即使方法名与方法模式不匹配。这也暗示了以下情况将导致包括以 ClassA 开头的所有方法:

ClassA* method* INCLUDE ClassA* * EXCLUDE

因为总是忽略第二个过滤器。

变通方法:

缺省情况下,如果类或方法与任何过滤器都不匹配,则将包括它。因此,永远也不要使用 INCLUDE 过滤器,而只使用 EXCLUDE 过滤器。因为只有第一个匹配的类模式起作用,所以对每个类只能指定一个 EXCLUDE 过滤器,并且在此过滤器中,可以使用方法模式来指定排除哪些方法,如下所示:

ClassA method* EXCLUDE ClassB call* EXCLUDE

返回到主自述文件