有什么办法能直接了当的弄清楚是程序哪个位置、哪一行语句报的错吗? 比如下面这种异常
2023-04-28 13:56:25.663 DEBUG 12404 --- [nio-8089-exec-1] c.z.a.mapper.SysMenuMapper.selectById : ==> Preparing: SELECT id,parent_id,name,path,perms,component,type,icon,ordernum,create_time,update_time,status FROM sys_menu WHERE id=?
2023-04-28 13:56:25.775 DEBUG 12404 --- [nio-8089-exec-3] c.z.a.mapper.SysMenuMapper.selectList : ==> Parameters:
2023-04-28 13:56:25.775 DEBUG 12404 --- [nio-8089-exec-1] c.z.a.mapper.SysMenuMapper.selectById : ==> Parameters: 1(Long)
2023-04-28 13:56:25.775 DEBUG 12404 --- [nio-8089-exec-2] c.z.a.mapper.SysMenuMapper.selectById : ==> Parameters: 1(Long)
2023-04-28 13:56:25.793 DEBUG 12404 --- [nio-8089-exec-2] c.z.a.mapper.SysMenuMapper.selectById : <== Total: 1
2023-04-28 13:56:25.795 DEBUG 12404 --- [nio-8089-exec-1] c.z.a.mapper.SysMenuMapper.selectById : <== Total: 1
2023-04-28 13:56:25.797 DEBUG 12404 --- [nio-8089-exec-3] c.z.a.mapper.SysMenuMapper.selectList : <== Total: 18
2023-04-28 13:56:25.807 ERROR 12404 --- [nio-8089-exec-2] c.z.a.c.e.GlobalExceptionHanlder : 运行时异常:nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'ew != null and ew.sqlFirst != null'.
Cause: org.apache.ibatis.ognl.OgnlException: sqlFirst [com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: can not use this method for "getSqlFirst"]
Comment From: miemieYaho
你怎么用的?
Comment From: evelynn996
你怎么用的?
@miemieYaho 我少加了eq条件,然后防全表更新拦截了,后面排查到了。 我不知道是在哪个语句报的错,要排查好久,有点折磨
this.lambdaUpdate()
.set(SysMenu::getName, sysMenu.getName())
.set(SysMenu::getPerms, sysMenu.getPerms())
.set(SysMenu::getIcon, sysMenu.getIcon())
.eq(SysMenu::getId, sysMenu.getId())
.update();
Comment From: nieqiurong
全局异常处理器打印出完整堆栈出来看看,可以的话提供一个复现的demo
Comment From: evelynn996
全局异常处理器打印出完整堆栈出来看看,可以的话提供一个复现的demo
@nieqiurong
谢谢,我之后意识到了打印出堆栈就能看到报错位置,报错原因上面提到了