先来看一段代码:当传入的id是0的时候,就会报异常。
@RestController
public class HelloController {
@GetMapping("/getUser")
public String getUser(int id) {
int j = 1 / id;
return "SUCCESS" + j;
}
}
访问时:
@GetMapping("/getUser")
public String getUser(int id) {
int j;
try {
j = 1 / id;
} catch (Exception e) {
return "系统异常";
}
return "SUCCESS" + j;
}
这种方法当然可以,但是当我们有很多方法时,需要在每个方法上都加上。
哎,太鸡肋了吧。
那么都没有全局的拦截处理呢?
当然了
/**
* @Author 刘翊扬
* @Date 2020/9/30 11:39 下午
* @Version 1.0
*/
@ControllerAdvice(basePackages = "com.yiyang.myfirstspringdemo.controller")
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
@ResponseBody
public Map<String,Object> errorResult() {
Map<String, Object> map = new HashMap<>();
map.put("errorCode", "500");
map.put("errorMsg", "全局捕获异常");
return map;
}
}
注意:下面还需要在启动类上加上,否则诶呦效果
package com.yiyang.myfirstspringdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages = {"com.yiyang.myfirstspringdemo.error", "com.yiyang.myfirstspringdemo.controller"})
public class MyFirstSpringDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MyFirstSpringDemoApplication.class, args);
}
}
在启动类上,将扫描包范围controller和全局异常处理类,加上去。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务