|
@@ -11,15 +11,12 @@ import org.springframework.web.bind.MethodArgumentNotValidException;
|
|
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
-import org.springframework.web.context.request.RequestContextHolder;
|
|
|
-import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.lang.reflect.InvocationTargetException;
|
|
|
import java.sql.SQLException;
|
|
|
import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
import java.util.StringJoiner;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -39,22 +36,15 @@ public class GlobalDefultExceptionHandler {
|
|
|
* excetion异常处理
|
|
|
*
|
|
|
* @param e
|
|
|
+ * @param request
|
|
|
* @param response
|
|
|
* @param <T>
|
|
|
* @return
|
|
|
*/
|
|
|
@ExceptionHandler(Exception.class)
|
|
|
@ResponseBody
|
|
|
- public <T> Result defultExcepitonHandler(Exception e, HttpServletResponse response) {
|
|
|
- log.error("Global exception", e);
|
|
|
+ public <T> Result defultExcepitonHandler(Exception e, HttpServletRequest request, HttpServletResponse response) {
|
|
|
StringJoiner stringJoiner = new StringJoiner("");
|
|
|
- HttpServletRequest request = null;
|
|
|
- try {
|
|
|
- ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder
|
|
|
- .getRequestAttributes();
|
|
|
- request = Objects.nonNull(servletRequestAttributes) ? servletRequestAttributes.getRequest() : null;
|
|
|
- } catch (Exception e1) {
|
|
|
- }
|
|
|
if (e instanceof BusinessException) {
|
|
|
BusinessException businessException = (BusinessException) e;
|
|
|
response.setStatus(businessException.getCode());
|
|
@@ -112,20 +102,17 @@ public class GlobalDefultExceptionHandler {
|
|
|
* sql异常处理
|
|
|
*
|
|
|
* @param e
|
|
|
+ * @param request
|
|
|
* @param response
|
|
|
* @param <T>
|
|
|
* @return
|
|
|
*/
|
|
|
@ExceptionHandler(SQLException.class)
|
|
|
@ResponseBody
|
|
|
- public <T> Result sqlExceptionHandler(SQLException e, HttpServletResponse response) {
|
|
|
+ public <T> Result sqlExceptionHandler(SQLException e, HttpServletRequest request, HttpServletResponse response) {
|
|
|
response.setStatus(ExceptionResultEnum.SQL_ERROR.getCode());
|
|
|
- log.error("SQLException 请求出错", e);
|
|
|
try {
|
|
|
StringJoiner stringJoiner = new StringJoiner("");
|
|
|
- ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder
|
|
|
- .getRequestAttributes();
|
|
|
- HttpServletRequest request = Objects.nonNull(servletRequestAttributes) ? servletRequestAttributes.getRequest() : null;
|
|
|
stringJoiner.add("[error path]:").add(request.getServletPath()).add("\r\n");
|
|
|
stringJoiner.add("[status]:").add(String.valueOf(ExceptionResultEnum.SQL_ERROR.getStatusCode())).add("\r\n");
|
|
|
stringJoiner.add("[code]:").add(String.valueOf(ExceptionResultEnum.SQL_ERROR.getCode())).add("\r\n");
|
|
@@ -140,20 +127,17 @@ public class GlobalDefultExceptionHandler {
|
|
|
* 反射异常处理
|
|
|
*
|
|
|
* @param e
|
|
|
+ * @param request
|
|
|
* @param response
|
|
|
* @param <T>
|
|
|
* @return
|
|
|
*/
|
|
|
@ExceptionHandler(InvocationTargetException.class)
|
|
|
@ResponseBody
|
|
|
- public <T> Result invocationTargetExceptionHandler(InvocationTargetException e, HttpServletResponse response) {
|
|
|
+ public <T> Result invocationTargetExceptionHandler(InvocationTargetException e, HttpServletRequest request, HttpServletResponse response) {
|
|
|
response.setStatus(ExceptionResultEnum.INVOCATIONTARGET_ERROR.getCode());
|
|
|
- log.error("invocationTargetExceptionHandler 请求出错", e);
|
|
|
try {
|
|
|
StringJoiner stringJoiner = new StringJoiner("");
|
|
|
- ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder
|
|
|
- .getRequestAttributes();
|
|
|
- HttpServletRequest request = Objects.nonNull(servletRequestAttributes) ? servletRequestAttributes.getRequest() : null;
|
|
|
stringJoiner.add("[error path]:").add(request.getServletPath()).add("\r\n");
|
|
|
stringJoiner.add("[status]:").add(String.valueOf(ExceptionResultEnum.INVOCATIONTARGET_ERROR.getStatusCode())).add("\r\n");
|
|
|
stringJoiner.add("[code]:").add(String.valueOf(ExceptionResultEnum.INVOCATIONTARGET_ERROR.getCode())).add("\r\n");
|