全局异常处理

如果用户登录之后,账户名相同,就会提示“账号已存在”否则提示“未知错误”,在全局异常处理器上实现

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

        }else {
            return Result.error(MessageConstant.UNKNOWN_ERROR);
        }
 split

在您提供的代码片段中,message.split(" ") 是一个使用Java的 String 类的 split 方法的调用。这个方法用于根据指定的分隔符将字符串分割成一个字符串数组。

具体来说,message.split(" ") 会根据空格字符将 message 字符串分割成多个部分,并返回一个包含这些部分的数组。每个数组元素代表原字符串中由空格分隔的一个部分。

例如,如果 message 的值是 "Duplicate entry 'username' for key 'PRIMARY'",那么执行 message.split(" ") 后,split 数组将包含以下元素:split[0] = “Duplicate”

split[1] = “entry”

split[2] = “‘username'”

split[3] = “for”

split[4] = “key”

split[5] = “‘PRIMARY'”

这种分割操作在处理异常消息时特别有用,因为它允许你根据消息的结构提取特定的信息。在您的异常处理方法中,通过分割异常消息,您可以找到特定的错误信息,如尝试插入重复的用户名。

@ExceptionHandler

@ExceptionHandler(SQLIntegrityConstraintViolationException.class):这个注解指明了这个方法用于处理 SQLIntegrityConstraintViolationException 类型的异常

SQLIntegrityConstraintViolationException是一个异常类,其message是Duplicate entry ‘zhangsan’ for key ’employee.idx_username’ 这里说明employee.idx_usename 触发了数据库的唯一约束,也就是账号是唯一的不可重复,

博客内容均系原创,未经允许严禁转载!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇