JAVA中的异常和错误

2023-11-13

异常(Exception)

异常可分为两类,运行期异常(RuntimeException)和受检异常(CheckedException)

运行期异常

定义:RuntimeException及其子类都被称为运行时异常。
特点:Java编译器不会检查它。当程序中可能出现这类异常时,倘若既"没有通过throws声明 抛出它",也"没有用try-catch语句捕获它",还是会编译通过。例如,除数为零时产生的ArithmeticException异常,数组越界时产生的IndexOutOfBoundsException异常,在对集合进行遍历时进行了修改操作会触发fail-fast机制产生的ConcurrentModificationException异常(java.util包下面的所有的集合类都是快速失败的)。
常见的异常有:

  • ClassCastException (类转换异常)
  • IndexOutOfBoundsException (数组越界)
  • NullPointerException (空指针异常)
  • ArrayStoreException (数据存储异常,操作数组的类型不一致)
  • BufferOverflowException (缓冲区溢出异常)

受检异常

定义:Exception类本身,以及Exception的子类中除了"运行时异常"之外的其它子类都属于受检异常。
特点 : Java编译器会检查它。当发生该异常时,要么通过throws进行声明抛出,要么通过try-catch进行捕获处理,否则不能通过编译。
常见的异常有

  • IOException
  • FileNotFoundException
  • SQLException

错误(Error)

定义: Error类及其子类
错误(Error): 与JVM相关的,当资源不足、约束失败、或是其它程序无法继续运行的条件发生时,就产生错误。程序本身无法修复这些错误的。例如:内存不够用了、程序运行时网络中断、程序所在的服务器断电等等。

异常和错误有什么不同

error 是JVM相关的问题。例如内存溢出。城序处理不了。exception是java程序运行中可预料的异常情况,咱们可以获取到这种异常,并且对这种异常进行业务外的处理。

运行时异常与受检异常有何异同?

都表示程序运行过程中可能出现的非正常状态。运行期异常不要求程序必须进行处理,而受检异常要求程序必须进行处理,例如将使用throws关键字声明可能出现的异常或使用try-catch-finally进行捕获。

try-catch-finally

用法: try 的代码块内如果抛出异常会跳过剩余的代码去执行 catch 代码块
finally语句可以省略,如果不省略即使前面执行了return语句也会等finally代码块执行完后再返回

	public static void main(String[] args){
        System.out.println(test());;
    }

    static int test() {
        int x = 1;
        try {
            return x;
        }
        finally {
            ++x;
        }
    }

运行结果

1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA中的异常和错误 的相关文章

随机推荐

  • OrangePIPC2---uboot flash的适配

    下载uboot源码 去我的github上下载源码 或者官方uboot都行 由于我还没装git所以先临时下载用用 解压 unzip XXX zip即可 编译 export CROSS COMPILE aarch64 linux gnu mak
  • Java获取Set中第一个值

    Map
  • [1227]在浏览器里面运行命令行ttyd

    文章目录 Web Terminal 安装 使用 基本使用 绑定端口 Basic Auth 自动打开浏览器 Docker 支持 SSH 终端 SSL 支持 更多 公网暴露 总结 Web Terminal ttyd https github c
  • Java反射---对象池

    在很多Java EE 框架中都需要根据配置文件信息来创建Java对象 从配置文件读取的只是i某个类的字符串类名 程序就需要根据该字符串来创建对应的实例 就必须使用反射 下面程序就实现了一个简单的对象池 该对象池会根据配置文件读取name v
  • IPv4,IPv6,TCP,路由

    主要回顾一下TCP IP的传输过程 在这个过程中 做了什么事情 ip 网际协议 IP协议能让世界上任意两台计算机之间进行通信 IP协议的三大功能 寻址和路由 传递服务 不可靠 尽最大努力交付传输数据包 可靠性由上层协议提供 无连接 数据包分
  • flea-jersey使用之Flea RESTful接口客户端接入

    Flea RESTful接口客户端接入 引言 1 客户端依赖 2 客户端接入步骤 3 具体接入讲解 3 1 资源客户端配置 3 2 客户端业务输入和输出参数定义 3 3 FleaJerseyClient使用 引言 本篇介绍 flea jer
  • HTTP状态 404~~~~

    HTTP常用状态码及其含义 1xx 指示信息 表示请求已接收 继续处理 100 Continue 初始的请求已经接受 客户应当继续发送请求的其余部分 HTTP 1 1新 101 Switching Protocols 服务器将遵从客户的请求
  • html&css

    html 规范 尽量使用双引号 img src 1 jpg div style color red div div HTML5标准模版 div
  • 图论感想

    图论基础无非也就是图存储 遍历 有向图无向图的连通性 分为图联通和联通分量 有向图为强联通分量 割点与割边 本人目前还没有看网络流内容 只是大致知道是什么 觉得也是图论一部分 个人认为学东西应该大体了解一下所学内容 每学一个必要好好思考 最
  • Android 设置默认锁屏壁纸接口

    完成自定义service后 接下来就是具体实现接口 1 在frameworks base core java android app customized ICustomizedService aidl中定义接口 boolean setLo
  • 第十二届蓝桥杯高职java组国一的感悟和建议

    我是高职java组的选手 这次比赛取得了国一前三的成绩 之前作为一个懵懂的大一新生 参加过一次比赛 只取得了国三的成绩 这次也算是实现一下小目标 不过可惜二次都没去北京 说好的300旅游呢 o 这应该是我最后一次参加蓝桥杯 这次比赛的题解我
  • ssh 安装注意

    修改version h 大部分漏洞要求隐藏 1 version h define SSH VERSION OpenSSH 8 4 改 define SSH PORTABLE p1 改 define SSH RELEASE SSH VERSI
  • Linux 6.6 RC 1 发布,还没加上 Bcachefs

    Linux 6 6 亮点包括 EEVDF 调度器 有利于 AMD 芯片 CPU 的工作队列变更 DRM CI 实验 KSMBD 不再是实验性质 HP BIOS 设置驱动程序 内核 make xconfig 的 Qt6 端口 新声音硬件支持
  • 快速刷爆六级词汇方式

    刷六级词汇 开启excel朗诵 方式1 方式2 关闭excel朗诵 方式1 方式2 词汇清单 之前考六级用excel刷词汇 一次通过 记录刷词方式 开启excel朗诵 方式1 点击打开朗读单元格 方式2 自定义功能区 gt 新建选项卡 gt
  • Linux文件传输--本地Windows文件上传到Linux服务器

    运行框中输入cmd打开命令框 输入下方语句进行上传 scp P 22 C Users Administrator Desktop 2023111 tar gz root IP data 语句解释 22 Linux服务器端口 C Users
  • 构建跨平台桌面应用程序:入门 Tauri 开发指南

    什么是 Tauri 简介和背景 Tauri 是一个用于构建跨平台桌面应用程序的工具包 它允许开发人员使用 Web 技术 如 HTML CSS 和 JavaScript 来构建原生应用程序 同时提供了访问底层系统 API 和外部命令的能力 T
  • 1032. 挖掘机技术哪家强(20)

    为了用事实说明挖掘机技术到底哪家强 PAT组织了一场挖掘机技能大赛 现请你根据比赛结果统计出技术最强的那个学校 输入格式 输入在第1行给出不超过105的正整数N 即参赛人数 随后N行 每行给出一位参赛者的信息和成绩 包括其所代表的学校的编号
  • android刘海屏之终极适配

    前言 作为安卓开发 也得承认苹果设计一直在引领潮流 所以自从 iPhone X 发布之后 刘海屏 就一直被热议 作为我自己必须先吐槽一下 真没觉得刘海屏好看 但是作为苦逼的开发者 还是要必须去适配刘海屏的 自然而然的在吐槽完毕以后还是有了这
  • Python爬虫技巧:使用代理IP和User-Agent应对反爬虫机制

    在当今的网络环境中 反爬虫机制广泛应用于各个网站 为爬虫程序增加了困难 然而 作为一名Python爬虫开发者 我们可以利用一些技巧应对这些反爬虫措施 本文将分享一个重要的爬虫技巧 使用代理IP和User Agent来应对反爬虫机制 帮助您更
  • JAVA中的异常和错误

    异常 Exception 异常可分为两类 运行期异常 RuntimeException 和受检异常 CheckedException 运行期异常 定义 RuntimeException及其子类都被称为运行时异常 特点 Java编译器不会检查