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;
}
}
在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;
}
}
相关文章推荐
- Java - Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意思?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗
- JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?在 try 块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- java异常处理和自定义异常利用try和catch让程序继续下去(回来自己再写个例子试运行下)
- 【Java面试题】22 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- java异常处理和自定义异常利用try和catch让程序继续下去
- java中用try如果catch到异常,怎么把这个异常处理掉让程序继续运行
- JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
- Java异常机制try、catch、finally、throw、throws五个关键字。
- Java 异常: try...catch...finally
- Java异常----try、catch和finally块中的return执行顺序
- Java异常--基本概念try...catch...finally
- 关于java异常处理的几个关键字 try catch/throw/throws