• 统一异常的处理方法


    一:知识点:

    1.@RestControllerAdvice

    1. 通过@ControllerAdvice注解可以将对于控制器的全局配置放在同一个位置。
    2. 注解了@RestControllerAdvice的类的方法可以使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上。
    3. @RestControllerAdvice注解将作用在所有注解了@RequestMapping的控制器的方法上。
    4. @ExceptionHandler:用于指定异常处理方法。当与@RestControllerAdvice配合使用时,用于全局处理控制器里的异常。
    5. @InitBinder:用来设置WebDataBinder,用于自动绑定前台请求参数到Model中。
    6. @ModelAttribute:本来作用是绑定键值对到Model中,当与@ControllerAdvice配合使用时,可以让全局的@RequestMapping都能获得在此处设置的键值对

    二,异常代码展示

    1. package com.example.demo_webmvc.zeng.exception;
    2. import com.example.demo_webmvc.zeng.util.R;
    3. import org.springframework.web.bind.annotation.ExceptionHandler;
    4. import org.springframework.web.bind.annotation.RestControllerAdvice;
    5. /**
    6. * 自定义异常消息
    7. */
    8. @RestControllerAdvice
    9. public class ZengException {
    10. /**
    11. * 全局异常
    12. * @param e
    13. * @return
    14. */
    15. @ExceptionHandler(value = Exception.class)
    16. public R runimeError(Exception e){
    17. System.out.println("运行异常---"+e.getMessage());
    18. System.out.println("全局异常--执行");
    19. return R.error("全局异常--执行");
    20. }
    21. /**
    22. * 特定异常
    23. * @param e
    24. * @return
    25. */
    26. @ExceptionHandler(value = RuntimeException.class)
    27. public R runime2Error(RuntimeException e){
    28. System.out.println("运行异常---"+e.getMessage());
    29. System.out.println("特定异常--执行");
    30. return R.error("特定异常--执行");
    31. }
    32. /**
    33. * 自定义异常
    34. * @param e
    35. * @return
    36. */
    37. @ExceptionHandler(value = CustomException.class)
    38. public R runime1Error(CustomException e){
    39. System.out.println("运行异常---"+e.getMessage());
    40. System.out.println("自定义异常--执行");
    41. return R.error("自定义异常--执行");
    42. }
    43. }
    1. package com.example.demo_webmvc.zeng.exception;
    2. /**
    3. * 异常方法
    4. */
    5. public class CustomException extends Exception {
    6. /**
    7. * 自定义异常
    8. * @param message
    9. */
    10. public CustomException(Exception message) {
    11. super(message);
    12. }
    13. }
  • 相关阅读:
    map容器
    【web前端期末大作业】HTML+CSS宠物狗静态网页设计
    redis删除缓存
    借助云的力量,重塑企业的现在和未来|re:Invent 2022 Adam Selipsky 主题演讲精华全收录
    SRC逻辑漏洞 hackinglab11 身份验证PkavHttpfuzzer验证码爆破
    操作系统历史---03
    Spring高手之路15——掌握Spring事件监听器的内部逻辑与实现
    理解网络通信的基础:OSI七层模型与TCP/IP五层模型
    【LeetCode】No.46. Permutations -- Java Version
    Kafka KRaft模式探索
  • 原文地址:https://blog.csdn.net/m0_55699184/article/details/132791474