日期:2014-05-19  浏览次数:20586 次

try{}catch(Exception e){}finally{}怎么用最合适?
Java code


/**
     * 查询用户角色表 roleuser
     * 根据据userNo 
     * 查出对应的部门代码集合
     */
    public static List getDepCodeList(String userNo){
        TSGRoleuserDao roleuserDao= (TSGRoleuserDao)BeanContext.getBean("daoTSGRoleuser");
        Map map=new HashMap();
        map.put("userNo", userNo);
        map.put("roleuserStatus",TSGConstants.TSG_enables_undel);
        List list=roleuserDao.query(map);
        List depCodelist=new ArrayList();
        try {
            if(list.size()>0&&list!=null){
                   for (int i = 0; i <list.size(); i++) {
                       list.add(i, ((Map)list.get(i)).get("ROLE_CODE").toString());
                }
             }
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return depCodelist.size()>0&&depCodelist!=null?depCodelist:null;
    }




try{
}catch(Exception e){
}finally{
}

用有什么好处?不用有什么坏处?到底什么时候用才最合适呢?大家都来吼吼吧!







------解决方案--------------------
try{
}catch(Exception e){
}要怎么用就不用说了嘛,就是捕获异常,处理异常,finally一般在你需要关闭数据库连接,关闭文件连接的时候需要用到,当然其他地方可能用到,我就说了常用的
------解决方案--------------------
用來做日志吖,查錯吖。。。。等等
------解决方案--------------------
try catch 都知道可以捕捉异常的,那么用在action中可以给予友好的错误提示,比如可以捕捉这么一块,那么可以根据不同的 excption 给予不同的解决。也可以做到一些需要很多的代码才能完成的事情,比如说判断,我将一个字母的字符串转化为int那么肯定会报异常,那么在catch中就可以说 这个字符串不是数字,这样子可以检验该字符串是不是数字的,等等一些的应用,那么finaly可以用于释放一些内存。不管有没有异常都会要走的代码,不用分很多情况去写相同的代码,这样子简化了代码,提高了代码质量。
------解决方案--------------------
一句话,根据业务需要使用。。。。

不要滥用也不要不用,

哎~虽然精辟,但跟没说一样。。。
------解决方案--------------------
这个嘛 没深究。一般是在感觉会有异常滴时候用,在catch时 俺一般输出异常。方便查看。
------解决方案--------------------
/**
* 查询用户角色表 roleuser
* 根据据userNo 
* 查出对应的部门代码集合
*/
public static List getDepCodeList(String userNo){
List depCodelist=new ArrayList();
String msg=null;
try {
TSGRoleuserDao roleuserDao= (TSGRoleuserDao)BeanContext.getBean("daoTSGRoleuser");
Map map=new HashMap();
map.put("userNo", userNo);
map.put("roleuserStatus",TSGConstants.TSG_enables_undel);
List list=roleuserDao.query(map);

if(list.size()>0&&list!=null){
for (int i = 0; i <list.size(); i++) {
list.add(i, ((Map)list.get(i)).get("ROLE_CODE").toString());
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
msg=e.getMessage();
}finally{
if(msg==null){
return depCodelist.size()>0&&depCodelist!=null
}else{
return null;//报错处理
}
}
}



------解决方案--------------------
业务代码都都放在try块里面!。。。。OK!
------解决方案--------------------
try{
//代码编译块,代码出现异常,结束下面的代码编译,执行catch块
}catch(Exception e){
//代码块的异常处理,接受代码编译的异常,没异常不执行
}finally{
//不管有不有异常,都会执行
}


一般catch都定义很多块如

try{
}catch(NullPointException ne){