springboot全局异常的捕获和处理
这套全局异常捕捉,是springboot自带的,只需要加入以下配置即可完成。
下面的配置有必要解释一下,直接粘贴进去是会出错的
这段配置是resfull风格的返回结果类,这段配置逻辑可以自己写。捕获到了异常怎么做处理
return HttpResult.error(1405, e.getMessage());
然后我有些异常是自定义的异常,大家不懂的可以自行百度,下面是代码,非常简洁
package com.louis.mango.admin.config;
import com.quake.core.exception.QuakeException;
import com.quake.core.exception.TransactionException;
import com.quake.core.http.HttpResult;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 全局异常的捕获
*
* @author hansen
* @version 1.0
* @date 2019/11/13 15:04
*/
@ControllerAdvice
public class MyExceptionHandler {
@ExceptionHandler(value = {HansenException.class, RuntimeException.class, TransactionException.class})//指定拦截的异常
@ResponseBody
public HttpResult errorHandler(Exception e) throws Exception {
if (e instanceof HansenException) {
return HttpResult.error(1405, e.getMessage());
} else if (e instanceof TransactionException) {
return HttpResult.error(1403,"事务异常");
}
return HttpResult.error(1401, "未知异常");
}
}