使用@RestControllerAdvice+@ExceptionHandler实现
也可以使用@ControllerAdvice+@ResponseBody+@ExceptionHandler实现
创建一个异常处理的类,放在config包下
组件类:
package com.dianping.config;
import com.dianping.dto.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@Slf4j
@RestControllerAdvice
public class WebExceptionAdvice {
// 捕获运行时异常
@ExceptionHandler(RuntimeException.class)
public Result handleRuntimeException(RuntimeException e) {
log.error(e.toString(), e);
return Result.fail("服务器异常");
}
}
也可以让不同的异常返回不同的结果,捕获什么异常由@ExceptionHandler的value属性决定,传入一个类对象(可以通过反射获得)文章来源:https://www.toymoban.com/news/detail-617018.html
package com.dianping.config;
import com.dianping.dto.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@Slf4j
@RestControllerAdvice
public class WebExceptionAdvice {
// 捕获运行时异常
@ExceptionHandler(RuntimeException.class)
public Result handleRuntimeException(RuntimeException e) {
log.error(e.toString(), e);
return Result.fail("服务器异常");
}
// 捕获空指针异常
@ExceptionHandler({NullPointerException.class})
public Result handleNullPointerException(NullPointerException e) {
return Result.fail("空指针异常");
}
// 捕获数字格式异常
@ExceptionHandler({NumberFormatException.class})
public Result handleNumberFormatExcption(NumberFormatException e) {
return Result.fail("数字格式异常");
}
}
文章来源地址https://www.toymoban.com/news/detail-617018.html
到了这里,关于springmvc统一异常处理拦截器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!