1

我有以下代码行,当我对我的项目运行 klocwork 分析时,我收到以下错误

SV.INT_OVF:来自 'br.readLine()' 的污染数据 'Long.parseLong(...)' 用于算术运算,可能导致整数溢出或意外结果

我的代码

 while (line = br.readLine() != null) {
     long timestamp = timescale * Long.parseLong(line.substring(1, line.length()));
 }

如何重构此代码以避免可能的溢出

谢谢

4

1 回答 1

1

您可以使用BigInteger来避免溢出。

你是否应该是另一个问题。

我会看看这些值的合理范围是多少,并首先验证您的输入。最广泛的理智值很可能不会产生溢出(或者如果确实如此,您必须使用 BigInteger)

于 2018-08-29T08:22:13.350 回答