这个接口有什么报错风险处理这个风险并优化代码 public JsonResult startOrSaveRequestBody Map map throws Exception HrWorkHandoverBasic vo = new HrWorkHandoverBasic; ListHrWorkHandoverRecord record=null;
这个接口的报错风险主要集中在以下几个地方:
- 空指针异常:在判断
map为空之前,先判断map是否为null,避免空指针异常。 - 空字符串判断:在判断
instId是否为空时,使用StringUtils.isEmpty(instId)来替代instId!=null&&!"".equals(instId),可以更简洁地判断字符串是否为空。 - 字符串比较:在判断
reviewedBy1是否包含逗号时,使用reviewedBy1.contains(",")来替代!StringUtils.isEmpty(reviewedBy1)&&reviewedBy1.contains(","),可以更简洁地判断字符串是否包含逗号。 - 数据类型转换:在将
time转换为long类型时,可以使用Long.parseLong(time)来替代new Long(time),可以避免自动拆装箱带来的性能损耗。 - 异常处理:在尝试解析
dateOut为日期类型时,应该使用try-catch块来捕获可能的异常,并处理异常情况。 - 对象判空:在判断
empOne是否为空时,应该使用empOne != null && !empOne.equals("")来替代empOne != null,可以更准确地判断empOne是否为空。 - 字符串比较:在判断
data.get("signCompanyCode")是否为空时,使用!StringUtils.isEmpty(data.get("signCompanyCode").toString())来替代data.get("signCompanyCode")!=null&&data.get("signCompanyCode")!="",可以更准确地判断字符串是否为空。 - 对象判空:在判断
data是否为空时,使用data != null来替代data!=null,可以更准确地判断data是否为空。 - 字符串比较:在判断
data.get("empName")是否为空时,使用!StringUtils.equals(data.get("empName").toString(),null)&&!StringUtils.equals(data.get("empName").toString(),"")来替代data.get("empName")!=null&&data.get("empName")!="",可以更准确地判断字符串是否为空。 - 对象判空:在判断
hrWorkHandoverBasics.get(0).getId()是否为空时,使用!StringUtils.isEmpty(hrWorkHandoverBasics.get(0).getId())来替代!StringUtils.isEmpty(hrWorkHandoverBasics.get(0).getId()),可以更准确地判断字符串是否为空。
针对以上的报错风险,可以进行以下优化:
- 在判断
map为空之前,先判断map是否为null,避免空指针异常。
if (map == null || map.isEmpty()) {
return JsonResult.getSuccessResult("参数为空");
}
- 在判断
instId是否为空时,使用StringUtils.isEmpty(instId)来替代instId!=null&&!"".equals(instId)。
if (StringUtils.isEmpty(instId)) {
hrHandoverBasicLogService.addBasicLog(workId, "已逻辑删除", map);
hrWorkHandoverBasicService.delete(id);
} else {
hrHandoverBasicLogService.addBasicLog(workId, "保存成功instId", map);
return JsonResult.getSuccessResult("保存成功");
}
- 在判断
reviewedBy1是否包含逗号时,使用reviewedBy1.contains(",")来替代!StringUtils.isEmpty(reviewedBy1)&&reviewedBy1.contains(",")。
String reviewedBy = reviewedBy1.contains(",") ? reviewedBy1.split(",")[0] : reviewedBy1;
- 在将
time转换为long类型时,使用Long.parseLong(time)来替代new Long(time)。
long lt = Long.parseLong(time); // 时间戳值
- 在尝试解析
dateOut为日期类型时,使用try-catch块来捕获可能的异常,并处理异常情况。
try {
Date changetime = changetime(dateOut);
vo.setDateOut(changetime);
} catch (ParseException e) {
hrHandoverBasicLogService.addBasicLog(workId, "解析离职时间失败: " + e.getMessage(), map);
return JsonResult.getFailResult("解析离职时间失败: " + e.getMessage());
}
- 在判空时,使用更准确的方式判断对象是否为空。
if (empOne != null && !empOne.equals("")) {
// ...
}
if (!StringUtils.isEmpty(data.get("signCompanyCode").toString())) {
// ...
}
if (data != null) {
// ...
}
if (!StringUtils.equals(data.get("empName").toString(), null) && !StringUtils.equals(data.get("empName").toString(), "")) {
// ...
}
if (!StringUtils.isEmpty(hrWorkHandoverBasics.get(0).getId())) {
// ...
}
``
原文地址: https://www.cveoy.top/t/topic/hLac 著作权归作者所有。请勿转载和采集!