捕获具体异常和捕获异常超类Exception两种情况

假如你知道可能会抛出FileNotFoundException异常我们知道捕获异常语句可以用(1)笼统捕获超类异常方式catch(Exceptione){e.printS... 假如你知道可能会抛出FileNotFoundException异常

我们知道捕获异常语句可以用(1)笼统捕获超类异常方式
catch(Exception e){
e.printStackTrace();
}

或者用(2)捕获具体异常方式
catch(FileNotFoundException fnfE){
fnfE.printStackTrace();
}

都可以捕获到这个FileNotFoundException异常,那么请问,笼统捕获超类异常和捕获具体异常应该首选推荐用哪一个呢?当然书上也建议先把具体捕获异常写在前面,捕获超类Exception写在最后的方式。

但我想知道是否有这样的情况:什么时候用第一种方式优于第二种方式,什么时候用第二种方式又优于第一种方式呢?有这样的情况吗?

或者可以说看情况而定,那确切是到底什么时候建议使用笼统捕获超类异常,而什么时候建议使用捕获具体异常呢?

可以举个例子给我吗?谢谢,因为自己一般写程序时老为图方便就直接使用第一种笼统捕获超类异常的方式。
谢谢三位,如果能把分平分给三位就好了,但好像百度不支持......那就投票吧!
展开
 我来答
百度网友a28217434
推荐于2016-10-19 · TA获得超过569个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:344万
展开全部
捕获异常通常是遵循从小到大的原则,也就是和你说地一样

先捕获具体的。

用Exception 来进行捕获,是在你不确定会出现什么异常时使用。

通常的工程下都会捕获具体的异常。

这样会打印出相应的日志信息。

也方便在捕获的相应异常下做相应的操作。。。

例子没有。。。

你具体用到的时候首先要分析会产生的异常。。。

一般finally也是必须的。
sd96800
2008-08-23 · TA获得超过599个赞
知道小有建树答主
回答量:797
采纳率:0%
帮助的人:363万
展开全部
我接这他们的说

之所以捕捉FileNotFoundException 异常
是因为你的业务需要FileNotFoundException
可能发生这个异常 而不是发生其他异常
虽然都是继承Exception 但是这样分类会好一点
以后如果参加工作了你也可能会自定义一些异常
如DAOException之类的 只不过更好的区分错误
加以修改
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是保持呼吸
2008-08-22
知道答主
回答量:30
采纳率:0%
帮助的人:12.7万
展开全部
接着1楼的往下说。
比如在找不到想要的文件时,我想提醒用户确认文件名是否正确,这之外的异常我都不关心。这时就需要先捕获具体异常(FileNotFoundException),再捕获Exception。否则,可能就根本分不清捕获的异常是不是FileNotFoundException了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du瓶邪
推荐于2018-04-13 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2788万
展开全部
1.抛出异常
// throw a comm_exception that contains throw position information
#define THROW_EX(what) \
throw comm_exception(what, __FILE__,__FUNCTION__,__LINE__);
这样在抛出异常的时候,就把文件,函数,行号信息等信息加入到异常类中。

2.捕获异常
// set the position information of catching the comm_exception
#define SET_CATCH_POS(comm_ex) \
comm_ex.set_catch_file(__FILE__);\
comm_ex.set_catch_function(__FUNCTION__);\
comm_ex.set_catch_line(__LINE__);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式