检查型异常有哪些java_JAVA系列之检查型异常与非检查型异常的详解
检查性异常和非检查性异常最主要的区别在于其处理异常的方式:检查性异常必须使用try catch或者throws等关键字进行处理,否则编译器会报错;非检查性异常一般是程序代码写的不够严谨而导致的问题,可以通过修改代码来规避。所有的检查性异常都继承自java.lang.Exception;所有的非检查性异常都继承java.lang.RuntimeException。
1.检查型异常(Checked Exception)
所谓检查(Checked)是指编译器要检查这类异常,检查的目的一方面是因为该类异常的发生难以避免,另一方面就是让开发者去解决掉这类异常,所以称为必须处理(try ...catch)的异常。如果不处理这类异常,集成开发环境中的编译器一般会给出错误提示。
常见的检查性异常:输入输出异常(IOException)、文件不存在异常(FileNotFoundException)、SQL语句异常(SQLException)等
例如:一个读取文件的方法代码逻辑没有错误,但程序运行时可能会因为文件找不到而抛出FileNotFoundException,如果不处理这些异常,程序将来肯定会出错。所以编译器会提示你要去捕获并处理这种可能发生的异常,不处理就不能通过编译。
2.非检查型异常(Unchecked Exception)
所谓非检查(Unchecked)是指编译器不会检查这类异常,不检查的则开发者在代码的编辑编译阶段就不是必须处理,这类异常一般可以避免,因此无需处理(try ...catch)。如果不处理这类异常,集成开发环境中的编译器也不会给出错误提示。
常见的运行时异常:空指针异常(NullPointerException)、除零异常(ArithmeticException)、数组越界异常(ArrayIndexOutOfBoundsException)等;
例如:你的程序逻辑本身有问题,比如数组越界、访问null对象,这种错误你自己是可以避免的。编译器不会强制你检查这种异常。
常见的NullPointException,ClassCastException是常见的非检查型异常。
检查型异常有哪些java_JAVA系列之检查型异常与非检查型异常的详解相关推荐
- 【备战春招/秋招系列】美团Java面经总结终结篇 (附详解答案)
该文已加入开源项目:JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目,Star 数接近 14 k).地址:https://github.com/Snailclimb.. ...
- 【备战春招/秋招系列】美团Java面经总结终结篇 (附详解答案) 1
该文已加入开源项目:JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目,Star 数接近 14 k).地址:https://github.com/Snailclimb/J ...
- 【备战春招/秋招系列】美团Java面经总结进阶篇 (附详解答案)
<!-- MarkdownTOC --> 一 消息队列MQ的套路 1.1 介绍一下消息队列MQ的应用场景/使用消息队列的好处 ①.通过异步处理提高系统性能 ②.降低系统耦合性 1.2 那么 ...
- (转)C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
原文链接:https://www.cnblogs.com/landeanfen/p/5501487.html 阅读目录 一.void无返回值 二.IHttpActionResult 1.Json(T ...
- 【5年Android从零复盘系列之二十】Android自定义View(15):Matrix详解(图文)【转载】
[转载]本文转载自麻花儿wt 的文章<android matrix 最全方法详解与进阶(完整篇)> [5年Android从零复盘系列之二十]Android自定义View(15):Matri ...
- 三菱FX5U系列PLC之间进行UDP以太网通信的具体方法示例详解(二)
三菱FX5U系列PLC之间进行UDP以太网通信的具体方法示例详解(二) 假设有A.B两个FX5U系列的PLC要进行UDP以太网通信,进行数据交互. 上次和大家分享了两台FX5U系列PLC进行UDP以太 ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
- ceph命令系列(一):ceph-deploy/ceph/rados/rbd 常用命令详解
ceph-deploy 常用命令详解 命令 描述 ceph-deploy new [mon-node ...] 指定node(s)为monitor,开始部署一个新的ceph集群,并且在当前目录创建ce ...
- 【外行也能看懂的RabbitMQ系列(二)】—— RabbitMQ的Web管理界面(rabbitmq_management)详解(内含Topic模式通配符实操)
系列文章目录 准备篇 RabbitMQ安装文档 第一章 RabbitMQ快速入门篇 第二章 RabbitMQ的Web管理界面详解 第三章 RabbitMQ进阶篇之死信队列 第四章 RabbitMQ进阶 ...
- 算法学习FFT系列(2):快速数论变换NTT bzoj3992: [SDOI2015]序列统计例题详解
bzoj3992: [SDOI2015]序列统计 Description 小C有一个集合S,里面的元素都是小于M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属 ...
最新文章
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
- VForum 2008系列之三:分论坛视频-实现自动化的虚拟数据中心
- maven报错解决: -source 1.5 中不支持 diamond 运算符
- 如何为 SQL Server 2000 分发和安装 SQL-DMO(引用)
- 我的Java开发学习之旅------Java ClassLoader解析一(转)
- 基于stm32单片机智能温控风扇控制系统Proteus仿真(源码+仿真+全套资料)
- GetClientRect、ScreenToClient、GetWindowRect、ClientToScreen、MoveWindow用法总结
- 怎么修改数据库服务器名字,修改SQL Server数据库服务器名字
- 大雁牌计算机在线使用,用大雁牌计算器解决有关计算问题
- 计算机视觉(二)-matlab之理想低通滤波器,布特沃斯低通、高斯低通,理想高通、布特沃斯高通、高斯高通滤波器
- 医学统计学中差异性检验的检验方法选择
- C++实现动态烟花,噼里啪啦过新年啦
- Revit 命令添加下拉框
- 企业ERP管理软件有哪些?哪个好
- 关于mail mailx 以及sendmail 的理解
- 银行借ApplePay反攻 七方利益分润未解
- 简谐振动|Python绘制拍与李萨如图形
- Feathers基础知识
- MacOS High Sierra 12 13系统转dmg格式
- 无法初始化设备 prn