项目中异常的处理

异常的处理,  要关注的几点
1. 项目当中,一定要有自定义的异常
原因:开发人员不能完全依赖于已有的异常体系,因为已有的异常体系对于用户来说,没有任何意义
      用户不知道什么是类转换异常,用户不知道,所以程序当中一定要有自定义异常

2. 通过自定义异常将系统发生的异常信息转换成自己的异常信息

3. 自定义异常继承于Exception ,说明自定义的异常是checked exception (检查时异常)

4. 异常信息从哪里来?
  对于一个完整的系统来说,通常都有一个异常信息属性文件用于存放系统当中所有的异常信息
   如: 更新失败

5. 需要有一种机制从属性文件当中读取异常信息
    一种完整的异常处理机制需要有如下文件:
    a) 异常信息属性文件 (key=value形式)
    b) 读取异常信息的类
    c)  可以将key 定义在一个类中,比如完全用数字标识的成员变量
    d) 自定义异常的类
    如: public class ErrorCode
         {
                public static int DELETE_ERROR = 1001;

        }

这里以oa 为例 ,具体讲解异常处理步骤
  首先 第一步 在项目中建立一个源代码目录,命名为errorMessage,在目录里建立一个

errorMessages.properties文件
  在属性文件中可以这样写
    1001 = 记录已被其他用户删除!

   第二步 在项目中, 通常会有辅助包(比如:com.zgct.util),在其中创建一个类MessageHelper (贴

代码上来)

   第三步  建立一个自定义异常处理包,如com.zgct.exception,在包中建立一个自定义异常类
   EngineException(贴上来) ,继承Exception ,紧接着,在包中建立一个ErroCode 异常编号类.

  第四步  从这里开始与实际应用相结合,

      a)   比如 在DocumentCatalogDAOImpl类,    有一个删除文档目录方法,应修改为

         public void deleteDocumentCatalog(Long id) throws EngineException
           {
  
                try
                {
                  //先根据 id 查询相应的目录
                 DocumentCatalog dc =                           (DocumentCatalog)this.getHibernateTemplate(). get(DocumentCatalog.class, id);

   //然后删除该目录

                 this.getHibernateTemplate().delete(dc);
               }catch(Exception ex)
               {
                   throw new EngineException(ErrorCode.DELETE_ERROR);
               }
         }

         此时,也应修改它所实现的接口DocumentCatalogDAO的方法
 如下:  public void deleteDocumentCatalog(Long id) throws EngineException;

      b)  如果有对应的service和service.impl包,则相应DocumentCatalogService和

DocumentCatalogServiceImpl所作修改与DAO,DAOImpl文件是相同的
      c)  现在到了action包

   第五步  在具有删除文档目录的jsp页面中,

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值