@ExceptionHandler使用案例 java异常处理(注册重复) 将异常写入log 并返回给前端

首先在java的log中找到引发错误所抛出的Exception

###Error updating database. java.sql.SQLInterityConstrainViolationException :

Duplicate entry 'zhangsan' for key 'employee.idx_username'

需要分析的点有两个

SQLInterityConstrainViolationException

提取出这里的exception类型

'zhangsan'

同时提取出这里的id后续用来说明这个id已经重复

@ExceptionHandler
public Result exceptionHandler(SQLIntegrityConstraintViolationException ex){
    //Duplicate entry 'zhangsan' for key 'employee.idx_username'
    String message = ex.getMessage();
    if(message.contains("Duplicate entry")){
        String[] split = message.split(" ");
        String username = split[2];
        String msg = username + MessageConstant.ALREADY_EXISTS;
        return Result.error(msg);
    }else{
        return Result.error(MessageConstant.UNKNOWN_ERROR);
    }

用Exception类型和 contains函数进行匹配说明确实是该错误

之后用split函数提取出username

最后拼装出msg 用Result封装返回给前端

前端看到的就是

error'zhangsan'用户名已经存在

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值