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

什么是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的语句块真的很丑陋,像横断在连贯的、优美的代码的一块伤疤或创口贴

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值