最佳实践:使用Spring AOP对异常进行统一处理(5)
时间:2025-07-10
时间:2025-07-10
有必要使用一个统一的异常处理机制 来进行某些异常处理的统一决策。比如对异常进行统一的日志记录,对散落在各处的某类异常进行统一处理等。
*
*@param joinPoint 连接点
*@param ex *捕获的异常
*
*/
public void handle(JoinPoint joinPoint, Throwable ex) {
/*过滤无需处理的异常*/
for(String exClassName:noCatchedExceptions){
try {
Class clazz = Class.forName(exClassName);
if (clazz.isAssignableFrom(ex.getClass()))
return; // 类似Clazz obj = ex;
} catch (ClassNotFoundException e1) {
logger.error("applicationContext-exception: propertity
noCatchedExceptions setting error", e1);
}
}
/* 转换成Flex可以处理的系统异常抛出*/
if (ex instanceof IMessage)
return ;
throw new SysException("not handlered exception!!", ex);
}
}
/**
*系统异常,由国际化框架提供统一的系统错误提示
* @author yrliang
*/
@SuppressWarnings( { "serial" })
public class SysException extends RuntimeException implements IMessage {
/**国际化框架根据msgKey转换系统错误消息提示*/
public String getMsgKey() {
return CoreMessageKeyConstants.SYS_EXCEPTION;
}
public SysException() {
super();
}
public SysException(String message) {
super(message);
}
public SysException(Throwable cause) {
super(cause);
}
public SysException(String message, Throwable cause) {
super(message, cause);
}
}
下一篇:钢材市场营运方案