昨天阿里面试官问了我这个问题,当时有点蒙。可能对于这两个词不太敏感吧,没答上来。当时如果面试官问错误类型有哪几种就能答上来了。还是自己太菜了,对很多知识掌握不够牢固。

异常总览

在java中,异常分为两种,运行时异常(也就是uncheckException)和已检查异常checkException,运行时异常包括平常遇到的各种异常,如空指针异常,数据格式异常等一系列异常,这种异常是可以不捕获的,可通过throws抛出异常,交给别的代码或者JAVA虚拟机来完成。但checkException是必须要处理的,也就是不能抛出,必须通过try-catch来完成,不处理的话是不能进行编译的。但是checkException不是一个具体的异常类型,它只是一个概念。所以你判断一个异常是已检查异常还是未检查异常,只需要通过抛出这个异常就可以知道了。
其中RuntimeException +Error 和其子类都是属于 uncheckexception,Exception类中除了 RuntimeException之外的类 都是属于 checkexception。

Error类
Error是系统中的错误,程序员是不能通过代码进行逻辑捕获的,这个错误是在程序编译时出现的,只能通过修改代码才能改正。属于uncheckedException。
如:内存空间不足,方法调用栈溢等。

受检异常(checkedException)
除去RuntimeException和Error外的异常都属于受检异常,该异常需要强制处理(throws给方法调用者,或者在发生的方法中try/catch掉)。

常见受检异常如下:
Java.lang.ClassNotFoundException --找不到类异常
Java.lang.CloneNotSupportedException --clone异常-未实现Cloneable接口
Java.lang.IOException --IO流异常
Java.lang.SqlException --sql异常
Java.lang.IllegalAccessException --访问权限异常-private
Java.lang.DataFormatException --数据格式化异常
Java.lang.NoSuchFieldException --反射异常
Java.lang.NoSuchMethodException --方法未找到异常

非受检异常(uncheckedException)
RuntimeException是所有非受检异常类的基类,即所有非受检异常继承自该类。该类异常不强制处理,但通常开发人员为了代码健全会进行封装处理,该异常发生的原因也通常是程序员对逻辑的考虑不周而出现的。

常见非受检异常如下:
Java.lang.ClassCastException --类型转换异常
Java.lang.NumberFormatException --数字转换异常
Java.lang.NullPointerException --空指针异常
Java.lang.IndexOutOfBoundsException --索引越界异常
Java.lang.ArrayIndexOutOfBoundsException --数组下标越界异常
Java.lang.StringIndexOutOfBoundsException --字符串截取下标越界异常
Java.lang.NegativeArraySizeException --数组大小为负数异常
Java.lang.ArithmeticException --算术异常
Java.lang.ArrayStoreException --数组元素不匹配异常
Java.lang.EnumConstantNotPresentException --枚举常量不存在异常
Java.lang.IllegalArgumentException --非法参数异常
Java.lang.IllegalThreadStateException --线程异常
Java.lang.IllegalMonitorStateException --违法的监控状态异常
Java.lang.TypeNotPresentException --类型不存在异常

CheckException和UnCheckException的区别相关推荐

  1. java runtimeexception check_CheckException和RuntimeException

    java文档中对RuntimeException的定义是: RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类. 可能在执行方法期间抛出但未被捕获的 Runt ...

  2. 找工作要复习的那些点

    2021年离职计划:30岁之前,还是期望在大厂工作,期望薪资是50万/年.涨幅在30%,工作地点在杭州/上海 时间 动作 2021:02:01 2021:02:01~~2021:02:20 todo: ...

  3. check在java意思吗_谈谈Java:Checked Exception与 unCheckException Runtime Exception 的区别...

    Java里有个很重要的特色是Exception ,也就是说允许程序产生例外状况.而在学Java 的时候,我们也只知道Exception 的写法,却未必真能了解不同种类的Exception 的区别. 首 ...

  4. 编译时异常和运行时异常区别

    文章目录 1.编译时异常因为什么而得名 2.编译时异常和运行时异常区别 3.编译时异常还有其他名字 4.运行时异常还有其他名字 5.所有异常都发生在运行阶段的 1.编译时异常因为什么而得名 编译时异常 ...

  5. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  6. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  7. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

  8. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

  9. Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别

    Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...

  10. HTTP 协议入门 — (TCP/IP协议族、通信传输流、URI 与 URL 的区别、Cookie 状态管理、HTTP 支持的方法、状态码类别、HTTP 首部字段)

    TCP/IP协议族 在介绍 HTTP 协议之前,我们先对 TCP/IP 协议族有个大概的了解,TCP/IP 协议从上到下主要分为应用层.传输层.网络层和数据链路层,各层的主要功能如下表所示: 协议层 ...

最新文章

  1. java实现愤怒的小鸟游戏
  2. iqooneo系统要不要更新_IQOOZ1即将发布,和IQOOneo3、OPPORenoACE对比,谁更值得入手?...
  3. 精选| 2021年9月R新包推荐(第58期)
  4. quartz2d 实现太极图
  5. WPF自定义控件 —— 布局
  6. 为什么相关不等于因果
  7. 计算机u盘病毒清除方式,终极:如何消除计算机上U盘的“文件夹.EXE病毒”?
  8. Prometheus邮件报警设置
  9. cl.moqy.pw index.php_index2.php
  10. 计算机硕士论文质疑数据不够,硕士论文伪造数据 抽检_硕士论文编数据的后果_硕士论文数据造假怎么被发现...
  11. 【码农开店连载记】-- 0 开坑啦
  12. js 实现统计网站访问量
  13. Android高德地图试用
  14. Error: need EHLO and AUTH first
  15. c语言分隔符的作用,句子分割代码(C语言程序的语句分隔符是)
  16. EXCEL对数据的相对引用和绝对引用
  17. python中英文书籍汇总,总有一本是你想要的
  18. rgb sw 线主板接口在哪_个性外观兼容强,还送三风扇,酷冷至尊TD500 MESH体验|机箱|电源|散热器|主板|白色...
  19. Centos7制作openssh9.0rpm包与升级
  20. U8修改消息任务内的单据显示模板

热门文章

  1. VMware虚拟机Mac OS X 扩展内存方法
  2. matlab提高循环运行效率,提高MATLAB运行效率
  3. 前端js日期格式转换
  4. 开源无线管理软件_开源无线电系统向育空地区及其他地区提供紧急警报和音乐
  5. Android仿网易云项目代码,Android项目实战教程之高仿网易云音乐启动页实例代码...
  6. Android Binder传递文件描述符原理分析
  7. 计算机应用基础制作表格的步骤,计算机应用基础_WORD制作表格_表格编辑公开课课件.ppt...
  8. Carry On My Wayward Son -- Kansas
  9. 基于java框架springboot在线外卖点餐系统 毕业论文 选题课题参考(2)后台管理
  10. 软件项目管理(复习)