/*     */ package com.picc.grab.aop;
/*     */ 
/*     */ import com.picc.grab.common.constants.ErrorEnum;
/*     */ import com.picc.grab.exception.BusinessException;
/*     */ import com.picc.grab.exception.ErrorResponse;
/*     */ import java.lang.reflect.UndeclaredThrowableException;
/*     */ import java.util.List;
/*     */ import javax.servlet.http.HttpServletRequest;
/*     */ import org.apache.log4j.Logger;
/*     */ import org.apache.shiro.authz.UnauthorizedException;
/*     */ import org.springframework.http.HttpStatus;
/*     */ import org.springframework.validation.BindingResult;
/*     */ import org.springframework.validation.FieldError;
/*     */ import org.springframework.validation.ObjectError;
/*     */ 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.bind.annotation.ResponseStatus;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ @ControllerAdvice
/*     */ public class GlobalExceptionHandler
/*     */ {
/*  31 */   private Logger log = Logger.getLogger(getClass());
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   @ExceptionHandler({MethodArgumentNotValidException.class})
/*     */   @ResponseBody
/*     */   public ErrorResponse exception(MethodArgumentNotValidException e) {
/*  96 */     BindingResult bindingResult = e.getBindingResult();
/*  97 */     List<ObjectError> allErrors = bindingResult.getAllErrors();
/*  98 */     String msg = ErrorEnum.ERROR_PARAM.msg;
/*  99 */     for (int i = 0; i < allErrors.size(); i++) {
/* 100 */       FieldError fieldError = (FieldError)allErrors.get(i);
/* 101 */       msg = msg + "," + fieldError.getDefaultMessage();
/*     */     } 
/* 103 */     return new ErrorResponse(ErrorEnum.ERROR_PARAM.code, msg);
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   @ExceptionHandler({BusinessException.class})
/*     */   @ResponseStatus(HttpStatus.OK)
/*     */   @ResponseBody
/*     */   public ErrorResponse businessError(BusinessException e) {
/* 115 */     return new ErrorResponse(e.getCode(), e.getMsg());
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   @ExceptionHandler({UndeclaredThrowableException.class})
/*     */   @ResponseStatus(HttpStatus.UNAUTHORIZED)
/*     */   public String credentials(UndeclaredThrowableException e, HttpServletRequest req) {
/* 128 */     this.log.error("无权访问该资源!", e);
/* 129 */     req.setAttribute("msg", "无权访问该资源!" + e);
/*     */ 
/*     */     
/* 132 */     return "nopermissions";
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   @ExceptionHandler({UnauthorizedException.class})
/*     */   public String nopermissions(UndeclaredThrowableException e, HttpServletRequest req) {
/* 143 */     System.out.println("权限异常!" + e);
/* 144 */     req.setAttribute("msg", "权限异常!" + e);
/*     */     
/* 146 */     return "nopermissions";
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   @ExceptionHandler({RuntimeException.class})
/*     */   @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
/*     */   public String notFount(RuntimeException e, HttpServletRequest req) {
/* 158 */     System.out.println("tip服务器未知运行时异常");
/* 159 */     System.out.println("运行时异常:" + e);
/* 160 */     req.setAttribute("msg", "运行时异常!" + e);
/*     */     
/* 162 */     return "error";
/*     */   }
/*     */ }


/* Location:              C:\Users\Administrator\Desktop\ROOT\WEB-INF\classes\!\com\picc\grab\aop\GlobalExceptionHandler.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */