1.新建工具类GlobalExceptionHandler
import org.springframework.boot.web.server.*;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ControllerAdvice;
/**
* @ Author :Zgq
* @ Date :Created in 14:14 2019/6/5
* @ Description:全局异常捕获
* @ Modified By:
* @Version: $
*/
@ControllerAdvice
public class GlobalExceptionHandler {
@Component
public class ErrorConfigurar implements ErrorPageRegistrar {
@Override
public void registerErrorPages(ErrorPageRegistry registry) {
ErrorPage[] errorPages=new ErrorPage[2];
errorPages[0]=new ErrorPage(HttpStatus.NOT_FOUND,"/o404");
errorPages[1]=new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR,"/o500");
registry.addErrorPages(errorPages);
}
}
}
2.定义跳转的url,新建BaseController类,错误时,发送了邮件给指定人员
import com.example.echart.mail.MailContentTypeEnum;
import com.example.echart.mail.MailSender;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
/**
* @ Author :Zgq
* @ Date :Created in 14:39 2019/6/5
* @ Description:
* @ Modified By:
* @Version: $
*/
@RestController
public class BaseController {
Logger logger = LogManager.getLogger(BaseController.class);
@RequestMapping("/o404")
public Object o404Error(Exception e){
logger.info("错误信息是:----------->"+e);
return "您找的页面被小偷偷走了!请联系系统管理员";
}
@RequestMapping("/o500")
public Object o500Error(Exception e) throws Exception{
logger.info("错误信息是:----------->"+e);
new MailSender()
.title("系统错误")
.content(e.toString())
.contentType(MailContentTypeEnum.TEXT)
.targets(new ArrayList<String>(){{
add("1912185394@qq.com");
}}).send();
return "您访问的页面正忙,请稍后访问...";
}
}