java异常捕获咨询

shangcunshanfu 2017-09-10 02:32:07
在java中为什么不直接用Exception去捕获异常呢,在声明IOExcepton 或是ClassNotFindException这些子异常?
...全文
543 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shangcunshanfu 2017-09-17
  • 打赏
  • 举报
回复
引用 8 楼 qq_33140971 的回复:
你们的回答都没回答到点子上,如果只有一个异常的话用Exception或者对应的异常是没有什么区别的。需要注意的是,在我们需要对每种异常分别做对应处理的时候,这时就必须要针对每种异常分别处理,才会用到分层多次捕捉。 一般你不需要分别处理异常直接去捕捉exception就行了,这个实际也是多态的应用,出现异常的时候就已经获得了异常的那个对象了,然后你用exception去捕捉,实际就是向上转型的过程,没有太大影响的,你直接去输出这个异常就会发现:不论你用什么去捕捉这个异常,他输出的都是程序中出现的异常。 而且你分层去捕捉异常的话实际应该比直接用exception去捕捉更慢的,,因为他还要挨个去判断出错的异常是否是捕捉的异常或其子类(使用instanceof判断),所以不要惯性的以为多写就一定是对的,完善的,符合实际情况才是最好的。
在我们需要对每种异常分别做对应处理的时候,这时就必须要针对每种异常分别处理,才会用到分层多次捕捉。我觉得这句话比较关键,谢谢你的回答
qq_39764082 2017-09-15
  • 打赏
  • 举报
回复
就是小异常在上大异常在下面 先补小的,你就知道捕获的异常的具体级别 如果直接补最大的,控制台直接报最大的异常 那异常捕获机制就没作用了
  • 打赏
  • 举报
回复
你们的回答都没回答到点子上,如果只有一个异常的话用Exception或者对应的异常是没有什么区别的。需要注意的是,在我们需要对每种异常分别做对应处理的时候,这时就必须要针对每种异常分别处理,才会用到分层多次捕捉。 一般你不需要分别处理异常直接去捕捉exception就行了,这个实际也是多态的应用,出现异常的时候就已经获得了异常的那个对象了,然后你用exception去捕捉,实际就是向上转型的过程,没有太大影响的,你直接去输出这个异常就会发现:不论你用什么去捕捉这个异常,他输出的都是程序中出现的异常。 而且你分层去捕捉异常的话实际应该比直接用exception去捕捉更慢的,,因为他还要挨个去判断出错的异常是否是捕捉的异常或其子类(使用instanceof判断),所以不要惯性的以为多写就一定是对的,完善的,符合实际情况才是最好的。
munan56 2017-09-11
  • 打赏
  • 举报
回复
引用 1楼soton_dolphin 的回复:
就像你去医院,医生得诊断你具体得了什么病,而开什么药,而不是只诊断你病了,让你回去多喝白开水。
110成成 2017-09-11
  • 打赏
  • 举报
回复
引用 1 楼 soton_dolphin 的回复:
就像你去医院,医生得诊断你具体得了什么病,而开什么药,而不是只诊断你病了,让你回去多喝白开水。
比喻很形象。
shangcunshanfu 2017-09-11
  • 打赏
  • 举报
回复
引用 1 楼 soton_dolphin 的回复:
就像你去医院,医生得诊断你具体得了什么病,而开什么药,而不是只诊断你病了,让你回去多喝白开水。
对于Exception来说,不声明子异常也能捕获到在程序中发生的异常,而生病了只喝水是治不了病的呀
偏安zzcoder 2017-09-11
  • 打赏
  • 举报
回复
很多时候你应该知道到底是有什么异常而不是仅限于知道抛出了异常,针对于不同的异常情况可能需要做不同的处理
soton_dolphin 2017-09-10
  • 打赏
  • 举报
回复
就像你去医院,医生得诊断你具体得了什么病,而开什么药,而不是只诊断你病了,让你回去多喝白开水。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧