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;
}
本人有12年JAVA银行项目经验,对Java相关技术以及银行相关项目,有比较深入的理解,如果您想在JAVA更进一步,欢迎关注ApiluDagny公众号,一起学习!主要集中在北京地区,线上讲解,线下聚会讨论形式,项目主要集中在银行项目,对于学得好的,保证就业.

浙公网安备 33010602011771号