try{
语句1;
}catch(ExecuteException e){
try{
语句1;
}catch(ExecuteException e1){
e1.printStackTrace();
}
}
try{
语句2;
}
catch(ExecuteException e){
重试语句2; (和语句1重试一样,就不再写出来了。)
}
我自己的做法是这样写了多个类似如上的try catch语句(但是总认为不对劲 - -。)....
ExecuteException类是自己定义的异常类,每个语句都可能报这个异常类。那么现在问题来了,我要的需求就是:如果语句1执行错误,重试语句1一次,如果重试成功,再继续语句2,如果重试还是catch异常,那么直接终止程序,后续语句都不执行了;如果;2也和1一样异常之后重试一次,成功则继续语句3,失败则终止程序...
我这样写着的话,不管语句1是否异常执行都会执行2的吧,请问try catch还有什么好的方法可以解决我的问题呢?求大神指点!!!!
在java中添加捕获异常代码时,需要把认为可能会出现异常的代码包括在try语句块内,处理异常的代码包括在catch语句内。在程序执行时,如果try语句内的代码出现错误,try会创建异常对象并抛出,catch捕获异常对象,则catch语句块内的代码将会执行,这样就可以处理异常错误了。
void fun1()
{
throw int();//抛出错误信息
}
int main()
{
try
{
fun1();
}
catch (int &e)//捕获错误信息
{
cout << "Exception" << endl;
cout << e << endl;
}
return 0;
}
扩展资料
try是try..catch..finally块中用来引导第一部分的关键字,用于声明需要捕获指定语句块的异常
完整的使用方法是
try {
语句块1
} catch (<? extends Throwable> e) {
语句块2.1
} catch (<? extends Throwable> e) {
语句块2.2
} catch (<? extends Throwable> e) {
语句块2.3
...
} finally {
语句块3
}
参考资料:百度百科 - try (java关键字)
你说的在第二次执行语句1的时候不try catch我想到过,但是不行啊,这样就是在整个方法中抛出异常了,那第一次执行语句1的时候还会去catch它的异常吗?
追答就是要给整个方法抛异常啊
第一次回捕捉到,你不是用trycatch了么,第二次不捕捉,如果第二次报错,那么第二次直接抛出你自定义的异常啊,这是你要的效果吧!~
恩,就是这个效果,我在第二次执行的catch里面打印异常的后面加一个return,貌似就可以达到这个效果勒!~~~
追答是的,return就不继续执行下面的代码了,java代码是按照顺序执行的,也就是说,你同一个方法里面的代码是从上到下顺序执行的。中间如果有return,方法就结束了,不会继续向下运行。
追问恩恩!感谢解答哈,问题这样应该是可以解决的啦~~
追答不用客气,帮助你的同时也在反思我学过的东西。
本回答被提问者采纳是的,所以我发现我自己的错误了嘛,就是不知道要如何处理这个问题,才问问大家的意见咯~~