问个java题,程序有异常抛出,任然可以运行?
http://zhidao.baidu.com/question/180357802.html问题,有人提过了,但我仍然不明白!!编译时Stringx=null;x.to...
http://zhidao.baidu.com/question/180357802.html
问题,有人提过了,但我仍然不明白!!
编译时String x = null; x.toString() 会抛出空指针异常,
那为什么还能得到结果?
难道,异常只要被处理了,程序就可以运行?? 展开
问题,有人提过了,但我仍然不明白!!
编译时String x = null; x.toString() 会抛出空指针异常,
那为什么还能得到结果?
难道,异常只要被处理了,程序就可以运行?? 展开
2个回答
展开全部
当然异常被处理程序就能运行。当异常发生时,会执行处理异常的代码,然后继续执行。我觉得可以这样理解try...catch语句,try,就是试着去执行try块的语句,如果没有异常,那很好,代码正确执行;但如果有异常,就相当于else,你就去执行catch里的代码。显然catch里的代码也是代码,跟其它地方的代码没有什么区别,程序继续正常执行。所以try...catch就相当于if...else,if(异常)执行catch语句。
但是出异常的那一句代码并没有执行结果,它错了,当执行到这句时就会自动转到catch代码块里,出错的代码以及它后面的代码都不会被执行了。你可以自己写个例子试试。
public class ExceptionTest {
public static void main(String[] args){
try{
int i = 4/0;
System.out.println(1);//执行不到的代码
}catch(Exception ex){
System.err.println(ex);
System.out.println(2);//会执行的代码
}
}
}
但是出异常的那一句代码并没有执行结果,它错了,当执行到这句时就会自动转到catch代码块里,出错的代码以及它后面的代码都不会被执行了。你可以自己写个例子试试。
public class ExceptionTest {
public static void main(String[] args){
try{
int i = 4/0;
System.out.println(1);//执行不到的代码
}catch(Exception ex){
System.err.println(ex);
System.out.println(2);//会执行的代码
}
}
}
追问
兄弟,你的解释很牛,
点到要点了啊,,佩服,
对异常这点细节,有了进一步的了解、、
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询