【问题标题】:Why emma doesn't give full coverage to finally blocks?为什么 emma 没有完全覆盖 finally 块?
【发布时间】:2011-06-18 00:46:46
【问题描述】:

我不明白为什么 emma 没有为“finally”块提供完整的代码覆盖率。我制作了一个简短的示例程序来演示这一点。

当我执行程序时它显示:

try
finally

所以我不明白为什么 finally 被标记为红色(未执行)而“finally”“println”被标记为黄色(部分执行)。我错过了什么吗?如何让emma明白finally块被覆盖了?

谢谢!

【问题讨论】:

    标签: java code-coverage emma


    【解决方案1】:

    在 EMMA 常见问题解答中有一个条目:Implicit branches due to finally blocks. 涉及部分覆盖的 finally 块的主题。也许这有帮助。

    【讨论】:

    • 谢谢!事实上,在 try 块内执行有无异常的代码可以完全覆盖 finally 块。
    • @stivlo 你能解释更多吗?
    • @JPM 原因写在aioobe提供的链接中:编译器必须保证清理代码[finally块]总是被执行,不管是否抛出异常尝试块。因此有两种可能的路径进入 finally 块:有和没有异常挂起。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    相关资源
    最近更新 更多