`

异常与日志

 
阅读更多

异常

使用异常,让你的程序

(1)、写出“现代”的代码

(2)、结构更加清晰

(3)、错误更容易定位

(4)、用户体验更好

(5)、你的模块更加易用和稳定

(6)、你还需要什么呢?

详见:《使用.NET异常机制》

 

1、每一个系统都要精心设计自己的异常体系结构,例如下图



ELPSysException是系统异常,一般不显示给用户看,主要作用是对check异常的包装。

ELPBizException是所有业务异常的基类,出现这种异常时可以告知用户,可以扩展特定的子异常类。

 

2、spring mvc在controller层提供了统一的异常处理接口

public class ControllerExceptionResolver implements HandlerExceptionResolver {
}
<bean class="com.iflytek.edu.tlsys.web.util.ControllerExceptionResolver"></bean>

 

3、如果方法调用不经过controller,也可以使用spring的aop机制来进行异常处理

@Aspect
public class ExceptionHandleAspect{
	/**
	 * 日志
	 */
	private static Logger logger = Logger.getLogger(ExceptionHandleAspect.class);
	
	/**
	 * ThriftService实现中的公有方法为切入点。
	 */
	@Pointcut("execution(public * com.iflytek.edu.tlsys.tservice..impl.*Impl.*(..))")
	public void defaultPointcut(){
		
	}
	
	/**
	 * ThriftService实现跌的方法调用出现异常。
	 * @param ex 异常
	 * @throws ThrTLSysException 系统异常
	 * @throws ThrTLBizException 业务异常
	 */
	@AfterThrowing(pointcut="defaultPointcut()",throwing="ex")
	public void afterThrowing(Throwable ex) throws ThrTLSysException,ThrTLBizException{
		logger.error(ex.getMessage(),ex);
		if(ex instanceof ELPBizException){
			throw new ThrTLBizException(ex.getMessage());
		}else{
			throw new ThrTLSysException(ex.getMessage());
		}
	}
	
}
    <aop:aspectj-autoproxy/>
    <bean class="com.iflytek.edu.tlsys.tservice.ExceptionHandleAspect"/>

   

 

日志

系统出现异常时,最常用的处理方式,便是记日志。比较常用的日志工具有log4j、logback。

详见: http://www.cnblogs.com/jenry/archive/2007/04/10/706636.html

搜索关键字:log4j配置

 

  • 大小: 56.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics