klockwork修改
2018-08-03 07:30:24来源:博客园 阅读 ()
- kw异常描述 - 01
Tainted data '(Double.valueOf(...) / 100)' that comes from 'bufferedReader.readLine()' is used in an arithmetic operation and can cause an integer overflow or unexpected result
代码行:
Double samplePercentage = Double.valueOf(samples) * (Double.valueOf(percent) / 100);
修改后的代码:
BigDecimal b1 = new BigDecimal(Double.parseDouble(samples));
BigDecimal b2 = new BigDecimal(Double.parseDouble(percent) / 100);
BigDecimal samplePercentage = b1.multiply(b2);
修改方法及原因:
float和double是为了科学计算和工程计算而设计的,只是为了广泛的数值范围上提供较为精确的快速近似值计算,不适用于需要提供精确的计算。不需要记录的值为十进制小数点,所涉及的值不太大可用int或long,
需要记录十进制小数点则使用BigDecimal。
-
kw异常描述 - 02
Sql object 'statement' is not closed on exit.
代码行:
PreparedStatement statement = connection.prepareStatement(sql_snap, PreparedStatement.RETURN_GENERATED_KEYS);
......
if(statement!=null){
try{
statement.close();
}catch (Exception e){
LLSysLog.logError("statement Release ERROR",e);
}
}
修改后的代码:
PreparedStatement statement =null;
try{
statement = connection.prepareStatement(sql_snap, PreparedStatement.RETURN_GENERATED_KEYS);
......
}finally{
if(statement!=null){
try{
statement.close();
}catch (Exception e){
LLSysLog.logError("statement Release ERROR",e);
}
}
}
修改方法及原因:
使用PrepareStatement、ResultSet、InputStream等均需要关闭,因为执行的过程中可能发生异常导致后面的代码没有执行,导致不能关闭,所以需要在finally中关闭,关闭的时候需要去捕获关闭的异常,因为有可能会关闭异常。
-
kw异常描述 - 03
Null pointer dereference
代码行:
if(map.ger(ip);){
String userName=map.ger(ip);.getUserName();
}
修改后的代码:
User user=map.ger(ip);
if(user!=null){
String userName=user.getUserName();
}
修改方法及原因:
当从外部传来的一个对象,要使用对象做get\set方法时,需先判断对象是否为空。
获取Map里的数据后,且数据为为对象,应先将数据取出来再判断对象是否为空。
因为直接判断,等使用的时候可能值已经改变了
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java笔记:数组,异常,泛型 2020-06-08
- Spring Cloud Gateway 全局通用异常处理 2020-06-08
- SpringCloud异常处理统一封装我来做-使用篇 2020-05-23
- Mybatis显示修改数据库成功,数据库却没有修改 2020-05-22
- 异常、堆内存溢出、OOM的常见情况及解决方案 2020-05-19
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash