一. 不要让异常扩散出去,在你负责的那层就要捕获和处理掉。
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put( "accountid", userId);
UcResult eprList = this.ucService .queryEnterpriseByAccountId(params);
if(eprList != null && !"".equals(eprList)){
JSONObject jobject = JSONObject.fromObject(eprList.getData());
if (!jobject.getString("authBriefInfoVoList" ).equals("" ) && jobject.getString("authBriefInfoVoList" ) != null) {
String qiyePassList = jobject.getString("authBriefInfoVoList" );
if (qiyePassList != null &&!"".equals(qiyePassList.toString())) {
JSONArray passList = JSONArray.fromObject(qiyePassList);
if(passList.size() > 0) {
authFlg = "2";//有认证企业并无默认企业
}
for ( int i=0; i<passList.size(); i++){
JSONObject obj = JSONObject.fromObject(passList.getString(i));
EqwEprInfo attach = new EqwEprInfo();
attach.setEprId(obj.containsKey( "enterpriseid") ? obj.getString("enterpriseid" ) : "" );
attach.setCorporation(obj.containsKey( "enterprisename") ? obj.getString("enterprisename" ) : "" );
reslist.add(attach);
}
model.addAttribute( "eprList", reslist);
}
}
}
} catch (Exception e) {
model.addAttribute( "eprList", reslist);
}
二、不要捕获 Java 类库中定义的继承自 RuntimeException 的运行时异常类,如:
IndexOutOfBoundsException / NullPointerException,这类异常由程序员预检查来规避,保
证程序健壮性。
三、异常不要用来做流程控制,条件控制,因为异常的处理效率比条件分支低。
四、不要对大段代码进行try-catch。你try-catch的是不稳定代码的那部分,稳定可预知结果的代码不要放进try-catch中,这是不负责任的行为。
五、 finally 块必须对资源对象、流对象进行关闭,有异常也要做 try-catch。