|  |  | 
 |  |  | import com.xcong.excoin.common.exception.GlobalException; | 
 |  |  | import com.xcong.excoin.common.system.bean.SysExceptionDetailEntity; | 
 |  |  | import com.xcong.excoin.modules.platform.dao.SysExceptionDetailDao; | 
 |  |  | import com.xcong.excoin.utils.dingtalk.DingTalkUtils; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.aspectj.lang.JoinPoint; | 
 |  |  | import org.aspectj.lang.annotation.AfterThrowing; | 
 |  |  | import org.aspectj.lang.annotation.Aspect; | 
 |  |  | import org.aspectj.lang.annotation.Pointcut; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.beans.factory.annotation.Value; | 
 |  |  | import org.springframework.dao.DuplicateKeyException; | 
 |  |  | import org.springframework.security.authentication.BadCredentialsException; | 
 |  |  | import org.springframework.security.core.userdetails.UsernameNotFoundException; | 
 |  |  | import org.springframework.stereotype.Component; | 
 |  |  | import org.springframework.web.bind.MethodArgumentNotValidException; | 
 |  |  |  | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SysExceptionDetailDao sysExceptionDetailDao; | 
 |  |  |  | 
 |  |  |     @Value("${spring.profiles.active}") | 
 |  |  |     private String profiles; | 
 |  |  |  | 
 |  |  |     @Pointcut("execution(* com.xcong.excoin..*.*(..))") | 
 |  |  |     public void exceptionCatch() { | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @AfterThrowing(pointcut = "exceptionCatch()", throwing = "ex") | 
 |  |  |     public void afterThrows(JoinPoint jp, Exception ex) throws Exception { | 
 |  |  |         if (ex instanceof GlobalException || ex instanceof MethodArgumentNotValidException || ex instanceof ValidationException || ex instanceof DuplicateKeyException || ex instanceof BadCredentialsException) { | 
 |  |  |         if (ex instanceof GlobalException || ex instanceof MethodArgumentNotValidException || ex instanceof ValidationException || ex instanceof DuplicateKeyException || ex instanceof BadCredentialsException || ex instanceof UsernameNotFoundException) { | 
 |  |  |             throw ex; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |         SysExceptionDetailEntity exceptionData = new SysExceptionDetailEntity(); | 
 |  |  |         exceptionData.setCreateTime(new Date()); | 
 |  |  |         exceptionData.setMachine(InetAddress.getLocalHost().getHostName()); | 
 |  |  |         exceptionData.setMachine(InetAddress.getLocalHost().getHostName()+"-"+profiles); | 
 |  |  |         exceptionData.setAddress(InetAddress.getLocalHost().getHostAddress()); | 
 |  |  |         exceptionData.setExceptionMsg(printStackTraceToString(ex)); | 
 |  |  |         exceptionData.setSimpleMsg(ex.getMessage()); | 
 |  |  |         sysExceptionDetailDao.insert(exceptionData); | 
 |  |  |  | 
 |  |  |         DingTalkUtils.sendActionCard(6); | 
 |  |  |         throw ex; | 
 |  |  |     } | 
 |  |  |  |