Java的checked exception与unchecked exception
在Java中exception分为checked exception和unchecked异常,两者有什么区别呢?
从表象来看,
checked异常就是需要在代码中try ... catch ...的异常,编译器在编译代码时会进行校验,如果没有对这些异常进行捕捉,就会编译出错。(本人理解:checked异常就是可以预料到会出现异常,为了防止真的出现异常,代码中必须显式地捕捉checked异常)。
unchecked异常就是该类异常不是一定会出现的异常,可能是由于代码写的有问题(例如,数组下标越界),运行环境异常(例如,内存不足)。(本人理解:unchecked异常就是没法预先判定的异常,因为异常是由于代码的编写错误或者运行环境的问题,编译器无从知晓这些异常)。
前人总结了一张简化Java中异常类的层次结构:

- 派生于Error或RuntimeException的异常称为unchecked异常
- 剩下的异常就是checked异常(注意,上图中就剩下IO异常,其实是不准确的)
国外有人总结了一张更为全面的异常层次结构图:

参考资料:
详解Java中的checked异常和unchecked异常
Diagram of Exception Hierarchy
Java的checked exception与unchecked exception的更多相关文章
- java中的Checked Exception和Unchecked Exception的区别
Java 定义了两种异常: - Checked exception: 继承自 Exception 类是 checked exception.代码需要处理 API 抛出的 checked excepti ...
- Java异常:选择Checked Exception还是Unchecked Exception?
http://blog.csdn.net/kingzone_2008/article/details/8535287 Java包含两种异常:checked异常和unchecked异常.C#只有unch ...
- checked exception和unchecked exception区别
http://blog.csdn.net/yuefengyuan/article/details/6204317 一. Java 中定义了两类异常: 1) Checked exception: 这类异 ...
- checked Exception和unchecked exception
checked Exception: io,sql等exception,程序无法控制的 unchecked exception: 包括Error与RuntimeException及其子类,如:OutO ...
- ckecked Exception和Unchecked Exception异常
Throwable 是所有 Java 程序中错误处理的父类 Error JVM Exception 程序 Checked Exception:继承java.lang.Exception 代表程序不能控 ...
- java中checked异常和unchecked异常区别?
马克-to-win:checked和unchecked异常区别:结论就是:1)RuntimeException和他的子类都是unchecked异 常.其他的都是checked异常.马克-to-win: ...
- Java 检查异常(checked exception)和未检查异常(unchecked exception)区别理解
所有异常类型都是 Throwable 类的子类,它包含Exception类和Error类,Exception又包括checked exception和unchecked exception. unch ...
- Checked Exception & Unchecked Exception
查Spring事务管理时看到一句话: Spring使用声明式事务处理,默认情况下,如果被注解的数据库操作方法中发生了unchecked异常,所有的数据库操作将rollback:如果发生的异常是chec ...
- 自定义异常时如何定义checked异常和unchecked异常
When defining your own exception type, study the existing exception classes in the Java API and try ...
随机推荐
- 解决 sr 的端口占用问题
只需要在一开机的极短时间内开启 sr 即可提前占用端口,而不是被占用
- R实战:grid包
grid包是一个底层的绘图系统,能够灵活地控制图形输出的外观和布局,但是grid包不提供创建完整图形的高级绘图系统,例如,ggplot2和lattice,而是提供绘制开发这些高级绘图的基础接口,例如: ...
- 180815-Spring之RestTemplate中级使用篇
Spring之RestTemplate中级使用篇 前面一篇介绍了如何使用RestTemplate发起post和get请求,然而也只能满足一些基本的场景,对于一些特殊的如需要设置请求头,添加认证信息等场 ...
- python log封装
# _*_ coding:utf-8 _*_ import logging import os import sys import time log_path = os.path.dirname(sy ...
- oracle数据库之子查询
子查询也叫内部查询,在主查询之前执行一次并得到结果,此结果一般情况下,是用来当做是主查询的条件. -- 在 emp 表中,找出工资比 ALLEN 的高? -- 先查出 ALLEN 的工资是多少? ...
- java四种访问权限修饰符
java中四个访问权限修饰符: public(公开的).protected(受保护的).default(默认的).private(私有的). 它们决定了紧跟其后被定义的东西的使用范围. 适用范围< ...
- SICP读书笔记 2.1
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...
- 为什么找程序员一定要看他的 GitHub
听说 最开始听到这句话是某知名互联网公司大牛告诉我的,我很不以为然,不过迫于他是"leader"我也注册了一个 highsea (广告 0.0):当然我可懒得 push 更别提 c ...
- 2-Fifth Scrum Meeting20151205
任务安排 闫昊: 今日完成:设计本地数据库. 明日任务:请假.(最近代码写得多……很累……) 唐彬: 今日完成:ios客户端代码的了解. 明日任务:ios客户端代码的深度学习. 史烨轩: 今日完成: ...
- Java实验五(客户端)
一. 实验内容 1. 运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2. 利用加解密代码包,编译运行代码,客户端加密,服务器解密: 3. 客户端加密明文后将密文通过 ...