学习目标
【掌握】公共异常处理类的使用
【掌握】解决前后端分离导致的跨域问题
类统一处理异常和前后端分离的跨域问题
一 目录结构和依赖关系
二 公共异常处理类编写
2.1 在com.Tony.user.controller包下创建公共异常处理类BaseExceptionHandler.java
package com.Tony.article.controller;
/../
/**
* @author AntonTony
* @version 1.0
* @GitHub https://github.com/AntonTony
*/
@ControllerAdvice //异常类声明
public class BaseExceptionHandler {
@ExceptionHandler(value = Exception.class)
@ResponseBody //处理结果转成json数据返回
public Result error(Exception e){
System.out.println("BaseException处理异常运行了");
e.printStackTrace(); //输出异常到控制台
// logger.error("异常",e);
return new Result(false, StatusCode.ERROR,e.getMessage());
}
}
2.2 在ArticleController类中添加测试方法
//测试统一异常处理,造一个异常
@RequestMapping(value = "/exception",method = RequestMethod.GET)
public Result testError(){
int a = 1/0;
return null;
}
/* @RequestMapping(value = "/exception",method = RequestMethod.GET)
public Result exception() throws Exception{
throw new Exception("测试统一异常处理");
}
*/
2.3 重新启动ArticleApplication启动类并使用postman测试
三 跨域处理
何为跨域,如何解决跨域?
- 浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域 。
- 十次方项目是采用前后端分离开发的,也是前后端分离部署的,必然会存在跨域问题。
- 只需要在controller类上添加注解@CrossOrigin即可解决跨域问题
总结
通过本篇文章:
- 掌握公共异常处理类的使用
- 解决了跨域问题