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>

解决思路

  1. 在insert前查验code是否被赋值
  2. insert方法执行后查验数据库中code字段是否正常
  3. 步骤1、2如果code情况如果存在差异,那么大概率是sql的问题。

解决方法:移除 and '' != code 语句
当code为数字类型时,test结果为false,例如code=786,test判断结果会是false
当code为字符串类型时,test结果为正常结果。

posted @ 2023-07-18 19:24  帅气的涛啊  阅读(168)  评论(0编辑  收藏  举报