gpt4 book ai didi

java - 如何处理java中的bug "dead store to local variable"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:13 26 4
gpt4 key购买 nike

我写了一个简单的测试代码。这是一个圆圈。我想大多数人都能想象出什么是圈类,我就不贴了。

在测试代码中,我尝试用无效点测试圆构造函数,并假设抛出异常。但是出现错误。上网查了一下,还是不知道怎么解决。有没有人可以帮助我?谢谢

代码信息,bug在后面代码的最后一句

/**
* Tests that the Circle constructor throws an exception for center Point.
*/
@Test (expected = IllegalArgumentException.class)
public void testIllegalCenter() {
//Instantiates a circle with an incorrect center point.
@SuppressWarnings("unused")
final Circle testCircle = new Circle(VALID_RADIUS, INVALID_POINT, VALID_COLOR);
}

错误报告

错误:在 CircleTest.testIllegalCenter() 中对 testCircle 的死存储

该指令将一个值赋给局部变量,但该值不会在任何后续指令中读取或使用。通常,这表明存在错误,因为从未使用过计算出的值。

请注意,Sun 的 javac 编译器通常会为最终局部变量生成死存储。因为 FindBugs 是一个基于字节码的工具,所以没有简单的方法来消除这些误报。

最佳答案

只需删除变量并像这样调用构造函数:

@Test (expected = IllegalArgumentException.class)
public void testIllegalCenter() {
new Circle(VALID_RADIUS, INVALID_POINT, VALID_COLOR);
}

关于java - 如何处理java中的bug "dead store to local variable"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23004309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com