BUG排查
1. IDEA debug 出现 no such instance method: ‘XXX‘
我的情况:明明对应类下面有方法,但是提示no such instance method: 'XXX'
+ 运行的时候报错 java.lang.NoSuchMethodError
解决思路:Jar包不一致
解决方法:打开多模块的多个POM文件,查看方法对应包的版本号,修改为相同的版本号再试。
2. 关于异常不能被捕获的排查
我的情况:BusinessException 不能被捕获。
import com.aaa.BusinessException;
// 类名:TestServiceImpl
public void testException(){
throw new BusinessException(ResultCode.BAD_REQUEST.getCode(), "[testException] 业务异常 ");
}
import com.bbb.BusinessException;
// 类名:TestController
try {
testService.testException();
} catch (BusinessException e) {
// 异常不能被捕获
System.out.println(e.getMessage());
}
解决思路:BusinessException 在不同的包下,对比上面的import就知道啦
解决方法:重新导包
3. @Value("${xxxx}")不能替换值的问题
我的情况:
@Value("${score}")
static int score;
void test(){
int result=score*100;
// score 空指针异常
}
解决思路:static 修饰的变量不能使用@Value() 绑定值,和加载顺序有关
解决方法:去掉static修饰符
4. mybatis insert 动态SQL问题
我的情况:
code不能正常插入数据库
<if test="null != code and '' != code">
code,
</if>
解决思路:
- 在insert前查验code是否被赋值
- insert方法执行后查验数据库中code字段是否正常
- 步骤1、2如果code情况如果存在差异,那么大概率是sql的问题。
解决方法:移除 and '' != code
语句
当code为数字类型时,test结果为false,例如code=786,test判断结果会是false
当code为字符串类型时,test结果为正常结果。
本文来自博客园,作者:帅气的涛啊,转载请注明原文链接:https://www.cnblogs.com/handsometaoa/p/17563892.html