检查型异常和非检查型异常——Java

Java语言规范将派生于Error类或RuntimeExceprion类的所有异常称为非检查型(unchecked)异常,所有其他的异常称为检查型(checked)异常。这是个很有用的术语。

Java中的异常类型分布:

但是,单单这样理解有些困难,我查了一些资料,用一些简单的语言来解释它们。

检查型异常

检查型异常,简单来说就是在现实中无法避免的,我们在设计程序时无法预知的异常抛出。例如:读取一个文件的内容。如果这个文件不存在或者程序没有读取权限时,就会抛出一个异常。我们必须要用throws声明它会出现的异常类型,或者用try...catch来捕获异常,并指明出现错误时要执行的操作。例如:

  1. 试图超越文件末尾继续读取数据;
  2. 试图打开一个不存在的文件;
  3. 试图根据给定的字符串查找 Class 对象,而这个字符串表示的类并不存在。

这类检查型异常必须要在代码中声明出来,它是不可避免和预知的。如果没有声明,集成开发环境IDE将会报错!它会帮我们检查,故称 检查型异常

这类异常我们必须要解决。

非检查型异常

非检查型异常,就是在代码实现阶段就可以预知和避免的一些异常,例如从 RuntimeExcrption类Error类 中继承的那些非检查型异常,RuntimeExcrption类包括:

  1. 错误的强制类型转换;
  2. 数组访问越界;
  3. 访问null指针。

这些异常不需要在代码中生命,IDE也不会报错指出。这些异常我们完全有能力去避免和预知,IED不会帮我们检查这其中的错误!故称为 非检查型异常

同时,我们也不需要声明Java的内部错误,即从 Error类 继承的异常。任何程序代码都可能抛出那样的异常,而我们对此完全无法控制。

结语

这就是对在Java中,检查型异常和非检查型异常的简单浅显理解,希望对Java的初学者有所帮助。

检查型异常和非检查型异常——Java的更多相关文章

  1. Java检查异常、非检查异常、运行时异常、非运行时异常的区别

    Java把所有的非正常情况分为两种:异常(Exception)和错误(Error),它们都继承Throwable父类. Java的异常(Exception和Error)分为检查异常和非检查的异常. 其 ...

  2. Java检查异常和非检查异常,运行时异常和非运行时异常的区别

    通常,Java的异常(包括Exception和Error)分为检查异常(checked exceptions)和非检查的异常(unchecked exceptions).其中根据Exception异常 ...

  3. Java运行时异常和非运行时异常

    1.Java异常机制 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类.Java中的异常分为两大类:错误Error和异常Exception,Java ...

  4. Java运行时异常与非运行时异常

    Java运行时异常与非运行时异常 Exception(异常)是程序本身可以处理的异常.主要包含RuntimeException等运行时异常和IOException,SQLException等非运行时异 ...

  5. Java检查型异常和非检查型异常

    1.代码 public class ExcepTest { /** * @param args */ public static void main(String[] args) { System.e ...

  6. java 检查异常 和 非检查异常

    个人见解 ,如果有问题 ,还希望大神们 指正 1. 非检查异常 又称运行时 异常 ,所有 继承自 RuntimeException 的异常都是 非检查异常  ,, 如果你不处理  会有 虚拟机 mai ...

  7. Java中运行时异常和非运行时异常什么鬼?

    Java中的异常分类 RuntimeException(也称unchecked exceptions,运行时异常) 就是我们在开发中测试功能时程序终止,控制台出现的异常.(一般来说,出现运行时异常基本 ...

  8. java 运行时异常与非运行时异常理解

    参考:https://blog.csdn.net/lan12334321234/article/details/70049446 所谓的异常就是阻止当前程序或方法继续执行的问题 java异常分为两种: ...

  9. Java基础:执行时异常和非执行时异常

    1.Java异常机制 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为全部异常的超类. Java中的异常分为两大类:错误Error和异常Exception.Jav ...

随机推荐

  1. 题解 洛谷 P2287 [USACO07NOV]Sunscreen G

    原题 传送门 有C个奶牛去晒太阳 (1 <=C <= 2500),每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值(minSPFi and maxSPFi),太大就晒伤了,太小奶牛没 ...

  2. springboot整合Druid(德鲁伊)配置多数据源数据库连接池

    pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-ja ...

  3. Android仿支付宝高顶部功能条伸缩动画

    参考:https://blog.csdn.net/aqi00/article/details/72621176

  4. JVM 学习笔记记录

    JVM 学习笔记记录 Sun JDK 监控和故障处理工具 名称 主要作用 jps JVM Process Status Tool, 显示指定系统内所有的HotSpot虚拟机进程 jstat JVM S ...

  5. Django学习路11_向数据库中添加 和 获取指定条件数据

    在 views.py 中添加函数 向数据库中添加数据 def add_persons(request): for i in range(15): person = Person() flag = ra ...

  6. 部分浏览器 set-cookie 不成功踩坑记录

    事件起因: 公司正在做一个sso的单点登录的项目,做完之后,在测试阶段,不同的终端的兼容测试时候,好几个不同的浏览器出现了不同的问题,有登录之后自动退出,有登陆不成功等问题. 在 pc 端只有 uc ...

  7. Python os.closerange() 方法

    概述 os.closerange() 方法用于关闭所有文件描述符 fd,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略.高佣联盟 www.cgewang.com 语法 clo ...

  8. Unicode 字符串

    Unicode 字符串 Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:高佣联盟 www.cgewang.com >>> u'Hello World ! ...

  9. PDOStatement::getAttribute

    PDOStatement::getAttribute — 检索一个语句属性(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)高佣联盟 www.cgewang.com 说 ...

  10. Gradle编译Spring源码

    使用工具:JDK1.8.0_11.Gradle4.9.idea2018.1.3 1. 配置Gradle Gradle下载地址:https://gradle.org/releases/ 在下载页找到自己 ...