您当前的位置: 首页 >  Java

石头wang

暂无认证

  • 2浏览

    0关注

    295博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

什么是java中的checked exception?runtime exception?unchecked exception?以及一些思考

石头wang 发布时间:2020-12-24 19:14:53 ,浏览量:2

什么是java中的checked exception?runtime exception?unchecked exception? 概述
  • checked exception

    是java官方文档中提过的,就是那些强迫程序员一定要处理的异常(抛出或者try-catch处理); 继承Exception

  • unchecked exception

    貌似是java官方没有提到的词,但是网络上很多这个词,所以列出来。其实就是runtime exception; 继承 RuntimeException

    印象中曾经读过的资料有这句话:“unchecked exception 这个词实际上是不存在于官方文档的,官方用的是runtime exception”

  • runtime exception

    是官方文档提到过的词语,就是不会强迫程序员处理的,这类异常通常是难以预料或者补救措施没什么意义的,所以被设计为不强迫程序员处理。继承自 RuntimeException

关于checked exception的 checked 怎么理解

checked 这个单词是check的过去分词,应该不是过去式,虽然英语中很多动词的过去式和过去分词是一模一样的,但是做定语修饰名词的时候,似乎是没有用过去式的,一般是用过去分词。 用过去分词似乎有这样3种含义:1、被动; 2、已完成; 3、两种都有。具体什么含义还得自行理解。PS:其实英语比起更加完全的屈折语似乎歧义性是高一点

回到主体,checked 究竟是表示什么意思? 是表示 “已经完成检查了的”,还是 “被检查了的”,好像套用哪个都有点不太对劲,有些地方将checked exception 翻译为 “受检异常”,那这个checked的意思就应该是 “(必须)受到检查的”,甚至是 “(必须)受到处理的” 的意思。

你觉得是什么含义?

其他

其实checked exception被设计出来是有争议的,比如在C++里是没这个的(C++全是运行时异常),争议是什么?争议是像FileNotFoundException 这种checked exception,即使发生了又能怎么样呢?你的Java语言设计成强迫程序员处理而程序员要么抛出要么记录日志后抛出也没有什么有效的处理方式,那你强迫程序员处理并没有达到预期的目的呀? 而且try-catch的语句块真的很丑陋,像横断在连贯的、优美的代码的一块伤疤或创口贴

关注
打赏
1663722529
查看更多评论
立即登录/注册

微信扫码登录

0.0369s