关于 java Exception 疑问

问题:为什么图一的程序没有错误最后Console显示结果是Fehler,而图二的程序不能运行呢?求高手解答,最好附加相应例子,感激不尽!... 问题:
为什么图一的程序没有错误最后 Console显示结果是 Fehler, 而图二的程序不能运行呢?
求高手解答,最好附加相应例子,感激不尽!
展开
 我来答
xiangqinxian
2013-06-26 · TA获得超过233个赞
知道小有建树答主
回答量:362
采纳率:0%
帮助的人:279万
展开全部
图示例子本来就是教你区别异常的类型:
Exception表示明确要求使用者进行检查的代码。既然要求你检查,前提是被调用的代码明确声明了会抛出这种异常。
图2中b方法抛出一个非运行时异常,而没有声明。所以不能编译。JLS要求所有非运行时异常必须声明。意思是告诉调用者,我可能会丢个惊喜给你,你必须处理。
处理的方法有两种:
1,继续声明这种类型的异常,然后直接调用,不管。
2,逮住这个鬼东西,收拾它。

图1中的算数异常属于运行时异常,可理可不理。是否声明都可以。
抓了,不会再向上的调用栈进行传递。不抓,一般是当前线程的默认处理,线程停止运行。
注意:图2中catch(Exception)将逮住所有异常,不管是普通的Exception还是RuntimeException。

另外:虽然RuntimeException也是Exception的子类。但是编译器会明确区分。实际上这是一个设计错误。

不要去听别人的翻译:什么检查异常,已检查异常。纯粹属于语文没有学好的人胡乱翻译。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式