java 异常处理

 异常,作为程序员来讲应该都不陌生,就是程序在运行过程中没有按照程序的预期执行。如果异常没有被处理可能导致程序莫名其妙退出,给客户展示了不想要的信息,导致后台数据错乱等。

  异常的处理的代码结构大致如下

    try {   //可能出现异常的代码块
        conn = DBHelp.getConnection();

List<PowerData> powerData = DBUtil.query(conn, sql, new String[] { terminalId, cityCode }, PowerData.class);

        return powerData;
    } catch (Exception e) {
        // 异常处理
        e.printStackTrace();
        throw e;
    } finally {
              //异常处理的收尾工作
        DBHelp.close(conn);
    }

 

异常主要做好三步:

 

1、捕获异常:什么时间捕获,捕获什么异常,其实不用太纠结。大部分程序员不是程序大拿,大部分应用对性能要求没有那么苛刻,咱们还是简单直接点捕获所有异常吧,也就是catch (Exception e)

2、捕获异常后做什么:

我想第一件事情就是输出堆栈信息了,这对运维是非常有用的。特别是对生产环境管控严格的公司,如果没有堆栈信息日志,简直是噩梦。

然后就是异常处理了,最常见的就是开启了事务的话要回滚,如果需要给客户端客户化提示的化就是提示语处理了。如下代码:

    catch (Exception e) {
       e.printStackTrace();
        baseObject.setState(CommonConst.RTN_CODE_99);
        baseObject.setResult(CommonConst.RTN_CODE_99_DESC);
        return baseObject;
    }
 

 

3、最后就是 finally,异常后有没有什么扫尾工作需要做的,都是放再这里。比如关闭连接之类的。

 

4、最后也就是很重要的一步,捕获异常后不知道怎么处理怎么办。可别为了不让程序报错,写出下面的代码

    catch (Exception e) {
      
    }
 

 

就是捕获后啥也不做,连个堆栈信息都不打,这就要坑死人了。

 

由于目前项目都基于mvc思想,一般一个业务功能会分成三部分action ,service以及dao。绝大部分公司都会在action做个统一的异常处理封装,简单的说在service与dao层,你可以捕获异常把它抛出去,不作处理。如下代码:

 

    catch (Exception e) {
       e.printStackTrace();
        throw e;
      }
 

 

 
 
 
posted @ 2019-01-02 11:04  ApiluDagny  阅读(183)  评论(0)    收藏  举报