检查型异常和非检查型异常——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. 转:Oracle 数据泵详解

    一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2 ...

  2. Monster Audio 使用教程(一)入门教程 + 常见问题

    Monster Audio支持的操作系统: windows 7 64bit 至 windows 10 64bit 受支持的VST: Vst 64bit.Vst3 64bit 受支持的声卡驱动: ASI ...

  3. js判断字符串中是否包含特殊字符、中文

    /** * @author:xc * @desc: 特殊字符校验 除了下划线 */ containSpecial(str) { var containSpecial = RegExp( /[(\ )( ...

  4. 前端学习(五):body标签(三)

    进击のpython ***** 前端学习--body标签 接下来的内容就比较多了,各位看官且听我慢慢道来... ... 使用a标签,链接到另一个页面 网页中<a>标签,全称:anchor. ...

  5. 图像增强 | CLAHE 限制对比度自适应直方图均衡化

    1 基本概述 CLAHE是一个比较有意思的图像增强的方法,主要用在医学图像上面.之前的比赛中,用到了这个,但是对其算法原理不甚了解.在这里做一个复盘. CLAHE起到的作用简单来说就是增强图像的对比度 ...

  6. Java线程-- 线程池

    1.线程池概念 线程池,其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源. 为什么要使用线程池? 在java中,如果每个请求到达就创 ...

  7. PHP入门之函数

    前言 之前对PHP的类型.运算符和流程控制简单说了一下.想了解的,这是地址. PHP入门之类型与运算符 PHP入门之流程控制 下面对函数简单说一下. 函数的基本概念 为完成某一个功能的程序指令的合集, ...

  8. MacOS下Nginx安装

    1. 先安装homebrew 2. 安装Nginx,终端下执行: $ brew install nginx 安装过程中会自己安装依赖: 3. 启动nginx服务 $ nginx 成功后,使用浏览器打开 ...

  9. PHP 标量类型与返回值类型声明

    标量类型声明 默认情况下,所有的PHP文件都处于弱类型校验模式. PHP 7 增加了标量类型声明的特性,标量类型声明有两种模式: 强制模式 (默认) 严格模式 标量类型声明语法格式: declare( ...

  10. Blob分析之board.hdev

    * board.hdev: Detection of missing solder* 获取当前系统参数get_system ('clip_region', Information)*设置当前系统参数s ...