您的位置:首页 > 编程语言 > Java开发

Java中已经被try,catch的异常再其上一层中如何继续被try,catch

2017-07-29 14:28 429 查看
比如Dao层有一条 insert 语句, 在该层已经try,catch了,现在我故意将sql写错,

在Service层 try,catch时,走到try就打印出异常了,然后不会进catch,现在我想

让程序进Service层的catch该如何处理?

Service层的代码

故意将ID字段写成OD字段

String sql = "INSERT INTO user_tbl (OD, NAME, AGE) VALUES ('1', '大头', '18')";

List<String> sqllist = new ArrayList<String>();
sqllist.add(sql);

try {
dataService.insertList(sqllist );
} catch (Exception e) {
flag = "0"; //这里代码不进catch,直接跳过,无法将flag设置成0
e.printStackTrace();
}

Dao层的代码

public boolean insertList(List<String> sqllist) {
List<Object[]> list = null;
// TODO Auto-generated method stub
if (sqllist != null && sqllist.size() > 0) {
boolean flag = false;

try {
int[] resoult = this.updateSqlDataAll(sqllist);
if(resoult!=null){
flag = true;
}else{
flag = false;
}

} catch (Exception e) {
flag = false;
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
} else {
return false;
}
}

以上代码在service层出现了异常,无法运行到catch中,做如下修改:

Dao层的代码

public boolean insertList(List<String> sqllist) throws Exception{
List<Object[]> list = null;
// TODO Auto-generated method stub
if (sqllist != null && sqllist.size() > 0) {
boolean flag = false;

try {
int[] resoult = this.updateSqlDataAll(sqllist);
if(resoult!=null){
flag = true;
}else{
flag = false;
}

} catch (Exception e) {
flag = false;
// TODO Auto-generated catch block
e.printStackTrace();
throw e; //将异常即使try,catch了也继续向上throw
}
return flag;
} else {
return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐