引言
统一异常处理
package com.example.demo.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/user") public class UserController { @RequestMapping("/test") public int test() { Object obj = null; obj.hashCode(); return 1; } }
package com.example.demo.component; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; @ControllerAdvice @ResponseBody public class MyExceptionAdvice { @ExceptionHandler(NullPointerException.class) public HashMap<String,Object> doNullPointerException(NullPointerException e) { // 自定义异常处理 HashMap<String,Object> result = new HashMap<>(); result.put("code",-1); result.put("msg","异常类型:" + e); result.put("data",null); return result; } }
异常全部监测
- 在生产环境中,我们可能会无意识的写出一些错误代码而导致各种出现异常,这是很难预料到的
- 如 算数异常、数组越界异常、类型转换异常 等
- 但是我们有必要针对每一个异常都写一个单独的处理方法吗?如上文对 空指针异常 处理的 doNullPointerException 一样
- 这显然是没必要的
- 因为 我们可以对所有异常进行统一处理,对个别有要求的异常进行特殊处理
实例理解
package com.example.demo.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/user") public class UserController { @RequestMapping("/arr") public int arr() { int[] array = new int[3]; for (int i = 0; i < 4; i++) { array[i] = i; } return 1; } }
package com.example.demo.component; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; @ControllerAdvice @ResponseBody public class MyExceptionAdvice { @ExceptionHandler(Exception.class) public HashMap<String,Object> doException(Exception e) { // 自定义异常处理 HashMap<String,Object> result = new HashMap<>(); result.put("code",-2); result.put("msg","异常类型:" + e); result.put("data",null); return result; } }
实例理解二
package com.example.demo.component; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; @ControllerAdvice @ResponseBody public class MyExceptionAdvice { @ExceptionHandler(Exception.class) public HashMap<String,Object> doException(Exception e) { // 自定义异常处理 HashMap<String,Object> result = new HashMap<>(); result.put("code",-2); result.put("msg","异常类型:" + e); result.put("data",null); return result; } // 对 空指针异常进行特殊处理 @ExceptionHandler(NullPointerException.class) public HashMap<String,Object> doNullPointerException(NullPointerException e) { // 自定义异常处理 HashMap<String,Object> result = new HashMap<>(); result.put("code",-1); result.put("msg","异常类型:" + e); result.put("data",null); return result; } }
原文地址:https://blog.csdn.net/weixin_63888301/article/details/134796502
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_47318.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。