黑马程序员技术交流社区
标题:
错误
[打印本页]
作者:
絮缘小默
时间:
2014-3-22 18:04
标题:
错误
使用try catch语句块的问题
当try语句块里产生一个错误,然后捕获,那么错误代码后面的代码是否还会运行?
如果使用throw语句明确引发一个错误呢?
作者:
chaos
时间:
2014-3-22 18:20
错误代码后面的代码不运行,直接运行catch里的代码
作者:
我感觉优势很大
时间:
2014-3-22 18:21
你看看这两种情况,是否复合你所说的
class Test
{
public static void main(String args[]){
try{
int[] i={1,2,3};
System.out.println(i[5]);
}
catch(Exception e){
System.out.println("in try-catch");
}
System.out.println("after try-catch");
error_test();
}
static void error_test(){
try {
int[] i={1,2,3};
System.out.println(i[5]);
} catch (Exception e) {
// TODO: handle exception
throw new RuntimeException("出错了");
}
System.out.println("after try-catch-throw");
}
}
复制代码
结果:
QQ截图20140322182137.png
(5.5 KB, 下载次数: 54)
下载附件
2014-3-22 18:21 上传
作者:
追逐
时间:
2014-3-22 18:53
捕获到异常后try语句中异常后面的语句是不会执行的。但是如果有finally的话无论是否捕获到异常。finally里面的代码都会执行。如果用throw抛出异常。如果真的有异常,后面的代码就不会执行了。没有的话就会执行
作者:
yanzhendong
时间:
2014-3-22 18:55
楼主你好,错误后面的代码是否执行在于你在异常处理程序中是怎么处理的,一般错误代码后面的代码不会执行,但如果是恢复性的异常处理,当异常处理完毕后异常后面的代码可能会执行,请看下面的代码:
public class Demo{
public static void main(String[] args){
int a=0;int b=200;
while(a++){
try{
System.out.println(a/(b--));
}catch(RuntimeException e){
b=b-1;
}
}
}
public static int Demo1(int a,int b)throw RuntimeException{
if(b==0){
throw new RuntimeException("除数不能为零");
}
}
}
复制代码
作者:
杨殿生
时间:
2014-3-22 21:27
错误后面的代码是不运行的直接执行catch的语句
使用throw出现错误也不会运行错误代码后面的代码
作者:
何伟超
时间:
2014-3-22 23:54
建议先把异常学完再问这样的问题。
作者:
心?=忐§忑]
时间:
2014-3-23 08:23
错误后面的代码不会执行,使用throw会把代码产生的异常抛出。
作者:
muma
时间:
2014-3-23 09:00
建议楼主认真听看老师视频
作者:
H-Deka
时间:
2014-3-23 16:49
错误代码后的代码不会执行了,出错后就去找相应的catch,如果找到配对的就执行对应的catch,如果没有对应的catch,就执行finally
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2