一个用于J2EE应用程序的异常处理框架

http://tech.ddvip.com   2006年11月21日    社区交流

本文详细介绍一个用于J2EE应用程序的异常处理框架

  对于每个异常来说,可以把exceptioninfo.xml 中的数据封装到一个叫做ExceptionInfoDTO的数据传输对象(data transfer object,DTO)。现在,我们还需要一个占位符,用于缓存这些对象,因为我们不想在异常出现时反复解析XML文件和创建对象。这项工作可以委托给一个叫做ExceptionInfoCache的类来完成,这个类将会在从exceptioninfo.xml文件读取ExceptionInfoDTO对象信息之后缓存所有这些对象。

  现在您是否弄清楚了这整个过程?这种方法的核心部分是ExceptionHandler实现,该实现将使用封装在ExceptionInfoDTO中的数据来获取消息代码,创建ExceptionDTO对象,然后基于在给定异常的ExceptionInfoDTO中指定的日志记录类型来记录它。

  下面是ExceptionHandler实现的handleException方法:

public ExceptionDTO handleException(String userId,BaseAppException exp) {
 ExceptionDTO exDTO = new ExceptionDTO();
 ExceptionInfoCache ecache = ExceptionInfoCache.getInstance();
 ExceptionInfo exInfo = ecache.getExceptionInfo( ExceptionHelper.getClassName(exp));
 String loggingType = null;
 if (exInfo != null) {
  loggingType = exInfo.getLoggingType();
  exDTO.setConfirmation(exInfo.isConfirmation());
  exDTO.setMessageCode(exInfo.getMessageCode());
 }
 FileLogger logger = new FileLoggerFactory().create();
 logger.logException(exp, loggingType);

  根据不同的业务需求,ExceptionHandler接口可以有多种实现。决定使用何种实现的任务可交由Factory来完成,特别是ExceptionHandlerFactory类。

  结束语

  如果缺乏全面的异常处理策略,一些特殊的异常处理块便可能导致出现非标准的错误处理和不可维护的代码。通过使用上面的方法,便可简化J2EE应用程序中的异常处理过程。

来源:bea    作者:ShriKant Vashishtha    责编:豆豆技术应用

正在加载评论...