标题:关于异常的一点疑惑
只看楼主
dearbaby_gx
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-11-28
 问题点数:0 回复次数:2 
关于异常的一点疑惑
书上说:在catch块中使用Exception超类,并在后面的多个catch块中使用Exception的子类时,可能发生意料之外的问题。例如,输入/输出异常IOException是文件尾异常EOFException的超类。如果将IOException块放在EOFException块前面,该超类将不会捕获任何异常。

问题:我们在写异常处理时,不是使用Exception超类的吗?如:
catch(Exception e)
{

}
各位觉得书上说的对吗?如我说得不对,请多多指正,谢谢!
2005-12-12 09:08
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
得分:0 
如果使用Exception来捕捉异常,那么只需要写这一个catch就可以了,任何异常都会被捕捉,但如果你想针对不同的异常作出不同的反应的话,这样写就不可以了

向着软件工程师的目标前进!
2005-12-12 10:07
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 

一个程序可能会出现各种不同的问题

比方说一个TCP协议的简单的点对点聊天工具,他光是在网络传输上就可能会出现

1.对方断线发送失败异常
2.自己断线发送失败异常
3.其他未知的异常(比如说你机器XX了或者是不小心除以一个0还是什么的)

这些异常你都必须要用各自的异常类来捕捉,而其他未知的异常就可以用Exception类来捕捉,但是这个Exception一定要放在所有异常捕捉的后面

比如
try {
} catch(LostFriends lf) {
....
} catch(LostSelf ls) {
....
} catch(Exception e) {
....
} finally {
....
}


淘宝杜琨
2005-12-13 19:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-37894-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.432936 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved