java中的全局异常处理和局部处理方法
1.在三层构架项目中,出现了异常,该如何处理?
方案一:在所有Controller的所有方法中进行try…catch处理
缺点:代码臃肿(不推荐)
方案二:全局异常处理器
好处:简单、优雅(推荐)
2.方法:
1.添加类:GlobalExceptionHandler
2.添加注解:@RestControllerAdvice
3.添加异常处理方法:ex并给方法添加注解 @ExceptionHandler(Exception.class)//捕获所有异常
package com.alex.exception;
import com.alex.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)//捕获所有异常
public Result ex(Exception ex){
ex.printStackTrace();
log.info("has error:{}",ex);
return Result.error("对不起,操作失败,请联系管理员");
}
}