一道关于JAVA的try catch使用方法题,我不太理解,求解释!

importjava.io.*;publicclassClass1{publicstaticvoidmain(Stringargs[]){inta=5;intb=0;Sy... import java.io.*;
public class Class1
{
public static void main(String args[])
{
int a=5;
int b=0;
System.out.println(a/b);
try
{
System.out.println("a="+a);
System.out.println(a/b);
System.out.println("a*a="+a*a);
}
catch(ArithmeticException e)
{ System.out.println("除数为0,这是不行的!"); }
finally
{ System.out.println("finally被执行!"); }
System.out.println("异常已发生,但不影响程序的执行!");
}
}
1) 运行上述程序,输出结果是什么?(异常提示信息除外)
除异常信息外无输出
2) 将变量b的初值改成5后,输出结果是什么?
1
a=5
1
a*a=25
finally被执行!
异常已发生,但不影响程序的执行!

答案上面已经给出了,可是为什么第一次会是除异常信息外无输出,而第二次是全部都能输出?
展开
 我来答
毛念儿dab7
2018-01-01 · TA获得超过144个赞
知道答主
回答量:51
采纳率:100%
帮助的人:17.5万
展开全部
异常没有捕获发生异常时,程序会自动退出,捕获了异常发生异常是,会执行相应的catch块以及finally块
你的算法,在int b下一行就出错了,这一行没有捕获,所以会什么都不打印就中止,而6
改成5之后就没有异常了,只会执行finally
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式