异常2

 

 

import java.io.IOException;
import java.sql.SQLException;
import java.util.zip.DataFormatException;

import .PmInfoException;

/**

 */
public class EccExceptionComm
{
 /**
  * 模块名称
  */
 public static final String PROJECT_MANAGE_MODULE_NAME = "项目管理";

 /**
  * 系统名称
  */
 public static final String APP_NAME = "ECC";

 /**
  * 控制层
  */
 public static final String ERROR_LAYER_ACTION = "action";

 /**
  * 业务逻辑层
  */
 public static final String ERROR_LAYER_SERVICE = "service";

 /**
  * 数据访问层
  */
 public static final String ERROR_LAYER_DAO = "dao";

 /**
  * 异常键
  */
 public static final String ERROR_KEY = "ecc.exception.customer.message";
 
 /**
  * 项目管理模块代码
  */
 private static final String PROJECT_MANAGE_MODULE_CODE = "10";

 /**
  * 数据访问层异常代码
  */
 private static final String DOA_EXCEPTION_CODE = "01";

 /**
  * 服务层异常代码
  */
 private static final String SERVICE_EXCEPTION_CODE = "02";

 /**
  * 控制层异常代码
  */
 private static final String ACTION_EXCEPTION_CODE = "03";

 /**
  * 定义外的异常
  */
 private static final String OTHER_EXCEPTION = "000";

 /**
  * SQL异常
  */
 private static final String SQL_EXCEPTION = "001";

 /**
  * IO异常
  */
 private static final String IO_EXCEPTION = "002";

 /**
  * 空指针异常
  */
 private static final String NULL_POINTER_EXCEPTION = "003";

 /**
  * 类运行期异常
  */
 private static final String CLASS_CAST_EXCEPTION = "004";

 /**
  * 数据格式异常
  */
 private static final String DATA_FORMAT_EXCEPTION = "005";

 /**
  * 非法参数异常
  */
 private static final String ILLEGAL_ARGUMENT_EXCEPTION = "006";

 /**
  * 下标越界异常
  */
 private static final String INDEX_OUTOF_BOUNDS_EXCEPTION = "007";

 /**
  * 类不存在异常
  */
 private static final String CLASS_NOT_FOUND_EXCEPTION = "008";

 /**
  * 方法不存在异常
  */
 private static final String NO_SUCH_METHOD_EXCEPTION = "009";

 /**
  * 属性域不存在异常
  */
 private static final String NO_SUCH_FIELD_EXCEPTION = "010";

 /**
  * 方法编号:01
  * 方法名称: getEccInfoException
  * 内容摘要: 抛出异常得静态公用方法
  *
  * @param className
  * @param errorKey
  * @param errorLayer
  * @param mothedName
  * @param exceptionMessage
  * @param ex
  * @throws EccInfoException
  */
 public static synchronized void throwEccInfoException(
  String errorLayer,
  String moduleName,
  String className,
  Exception exception)
  throws EccInfoException
 {
  //判断异常是否已经是EccInfoException
  if (exception instanceof EccInfoException)
  {
   //直接抛出扑抓到得异常
   throw (EccInfoException) exception;
  }
  //初始化异常码
  StringBuffer errorCode = new StringBuffer();
  //判断模块名称
  if(PROJECT_MANAGE_MODULE_NAME.equals(moduleName))
  {
   errorCode.append(PROJECT_MANAGE_MODULE_CODE);
  }
  //判断是否控制层抛出的异常
  if (ERROR_LAYER_ACTION.equals(errorLayer))
  {
   errorCode.append(ACTION_EXCEPTION_CODE);
  }
  //判断是否服务层抛出的异常
  else if (ERROR_LAYER_SERVICE.equals(errorLayer))
  {
   errorCode.append(SERVICE_EXCEPTION_CODE);
  }
  //判断是否数据访问层抛出的异常
  else if (ERROR_LAYER_DAO.equals(errorLayer))
  {
   errorCode.append(DOA_EXCEPTION_CODE);
  }
  //判断是否为SQL异常异常
  if (exception instanceof SQLException)
  {
   errorCode.append(SQL_EXCEPTION);
  }
  //判断是否为IO异常
  else if (exception instanceof IOException)
  {
   errorCode.append(IO_EXCEPTION);
  }
  //判断是否为空指针异常
  else if (exception instanceof NullPointerException)
  {
   errorCode.append(NULL_POINTER_EXCEPTION);
  }
  //判断是否为类运行期异常
  else if (exception instanceof ClassCastException)
  {
   errorCode.append(CLASS_CAST_EXCEPTION);
  }
  //判断是否为数据格式异常
  else if (exception instanceof DataFormatException)
  {
   errorCode.append(DATA_FORMAT_EXCEPTION);
  }
  //判断是否为非法参数异常
  else if (exception instanceof IllegalArgumentException)
  {
   errorCode.append(ILLEGAL_ARGUMENT_EXCEPTION);
  }
  //判断是否为下标越界异常
  else if (exception instanceof IndexOutOfBoundsException)
  {
   errorCode.append(INDEX_OUTOF_BOUNDS_EXCEPTION);
  }
  //判断是否为类不存在异常
  else if (exception instanceof ClassNotFoundException)
  {
   errorCode.append(CLASS_NOT_FOUND_EXCEPTION);
  }
  //判断是否为方法不存在异常
  else if (exception instanceof NoSuchMethodException)
  {
   errorCode.append(NO_SUCH_METHOD_EXCEPTION);
  }
  //判断是否为属性域不存在异常
  else if (exception instanceof NoSuchFieldException)
  {
   errorCode.append(NO_SUCH_METHOD_EXCEPTION);
  }
  //判断是否为定义外的异常
  else
  {
   errorCode.append(OTHER_EXCEPTION);
  }
  //构造异常
  EccInfoException pmInfoException =
   new EccInfoException(APP_NAME, errorLayer, moduleName, className, errorCode.toString(), exception);
  throw pmInfoException;
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值