Browse Source

修改异常处理类

will.chen 7 years ago
parent
commit
f9c71e9fa8

+ 54 - 1
src/main/java/com/uas/eis/exception/ExceptionHandlerAdvice.java

@@ -2,19 +2,20 @@ package com.uas.eis.exception;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.sql.SQLRecoverableException;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
 import org.apache.log4j.Logger;
 import org.springframework.http.HttpStatus;
+import org.springframework.jdbc.BadSqlGrammarException;
 import org.springframework.ui.ModelMap;
 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.bind.annotation.ResponseStatus;
 
-
 @ControllerAdvice
 public class ExceptionHandlerAdvice {
 
@@ -41,6 +42,58 @@ public class ExceptionHandlerAdvice {
 		return map;
 	}
 	
+	
+	/**
+	 * 处理连接池的连接失效抛出异常
+	 * 
+	 * @see SQLRecoverableException
+	 * @param ex
+	 * @return
+	 */
+	@ExceptionHandler(SQLRecoverableException.class)
+	@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
+	@ResponseBody
+	public ModelMap handleSQLRecoverableExceptionError(SQLRecoverableException ex, HttpServletRequest request) {
+		ModelMap map = new ModelMap();
+		map.put("exceptionInfo", getErrorStack(request, ex, "连接异常"));
+		return map;
+	}
+	
+	/**
+	 * 处理参数错误抛出异常
+	 * 
+	 * @see IllegalArgumentException
+	 * @param ex
+	 * @return
+	 */
+	@ExceptionHandler(IllegalArgumentException.class)
+	@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
+	@ResponseBody
+	public ModelMap handleIllegalArgumentExceptionError(IllegalArgumentException ex, HttpServletRequest request) {
+		logger.error(ex.getCause());
+		ex.printStackTrace();
+		ModelMap map = new ModelMap();
+		map.put("exceptionInfo", getErrorStack(request, ex, "参数错误"));
+		return map;
+	}
+	
+	/**
+	 * SQL语法错误
+	 * 
+	 * @param ex
+	 * @return
+	 */
+	@ExceptionHandler(BadSqlGrammarException.class)
+	@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
+	@ResponseBody
+	public ModelMap handleBadSqlGrammarExceptionError(BadSqlGrammarException ex, HttpServletRequest request) {
+		logger.error(ex);
+		ModelMap map = new ModelMap();
+		ex.printStackTrace();
+		map.put("exceptionInfo", getErrorStack(request, ex, "程序错误"));
+		return map;
+	}
+	
 	/**
 	 * 封装错误信息,按用户设置是否显示栈信息
 	 * 

+ 1 - 3
src/main/java/com/uas/eis/utils/support/InterceptorConfig.java

@@ -11,17 +11,15 @@ public class InterceptorConfig implements HandlerInterceptor{
 
 	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
 		//token认证
-		throw new Exception("Exception");
+		throw new RuntimeException("Exception");
 	}
 	
 	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
 			@Nullable ModelAndView modelAndView) throws Exception {
-		System.out.println("======postHandle======");
 	}
 	
 	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
 			@Nullable Exception ex) throws Exception {
-		System.out.println("======afterCompletion======");
 	}
 	
 }

+ 0 - 0
src/main/resources/application.properties