java 异常 错误_有关JAVA异常和错误(ERROR)的处理

2023-11-09

异常的处理主要包括捕获异常、程序流程的跳转和异常处理语句块的定义等。当一个异常被抛出时,应该有专门的语句来捕获这个被抛出的异常对象,这个过程被称为捕获异常。当一个异常类的对象被捕获后,用户程序就会发生流程的跳转,系统中止当前的流程而跳转至专门的异常处理语句块,或直接跳出当前程序和 Java 虚拟机,退回到操作系统。

8.3.1 异常类说明

Java 中所有的异常都由类来表示。所有的异常都是从一个名为 Throwable 的类派生出来的。因此,当程序中发生一个异常时,就会生成一个异常类的某种类型的对象。 Throwable 类有两个直接子类: Exception 和 Error 。

与 Error 类型的异常相关的错误发生在 Java 虚拟机中,而不是在程序中。错误类( Error )定义了被认为是不能恢复的严重错误条件。在大多数情况下,当遇到这样的错误时,建议让该程序中断。这样的异常超出了程序可控制的范围。

由程序运行所导致的错误由 Exception 类来表示,该异常类定义了程序中可能遇到的轻微的错误条件。可以编写代码来处理这样的异常并继续执行程序,而不是让程序中断。它代表轻微的可以恢复的故障。接收到异常信号后,调用方法捕获抛出的异常,在可能的情况下再恢复回来,这样程序员可以通过处理程序来处理异常。

Java 中的异常类具有层次组织,其中 Throwable 类是 Error 类(错误类)和 Exception 类(异常类)的父类, Throwable 类是 Object 类的直接子类。

异常类( java.lang.Exception )继承于 java.lang.Object 类中的 java.lang.Throwable 类。异常可分为执行异常( Runtime Exception )和检查异常( Checked Exception )两种,如图 8-1 所示。为了深入了解执行异常和检查异常内容,这里给出它们的详细介绍列举。

20465402_4.gif

图 8-1异常类的继承结构

1.执行异常

执行异常即运行时异常,继承于 Runtime Exception 。 Java 编译器允许程序不对它们做出处理。下面列出了主要的运行时异常。

·ArithmeticException : 一个非法算术运算产生的异常。

·ArrayStoreException : 存入数组的内容数据类型不一致所产生的异常。

·ArrayIndexOutOfBoundsException : 数组索引超出范围所产生的异常。

·ClassCastException : 类对象强迫转换造成不当类对象所产生的异常。

·IllegalArgumentException : 程序调用时,返回错误自变量的数据类型。

·IllegalThreadStateException : 线程在不合理状态下运行所产生的异常。

·NumberFormatException : 字符串转换为数值所产生的异常。

·IllegalMonitorStateException : 线程等候或通知对象时所产生的异常。

·IndexOutOfBoundsException : 索引超出范围所产生的异常。

·NegativeException : 数组建立负值索引所产生的异常。

·NullPointerException : 对象引用参考值为 null所产生的异常。

·SecurityException : 违反安全所产生的异常。

2.检查异常

除了执行异常外,其余的子类是属于检查异常类也称为非运行时异常,它们都在 java.lang 类库内定义。 Java 编译器要求程序必须捕获或者声明抛弃这种异常。下面列出了主要的检查异常。

·ClassNotFoundException : 找不到类或接口所产生的异常。

·CloneNotSupportedException : 使用对象的 clone( )方法但无法执行 Cloneable所产生的异常。

·IllegalAccessException : 类定义不明确所产生的异常。

·InstantiationException : 使用 newInstance( )方法试图建立一个类 instance时所产生的异常。

·InterruptedException : 目前线程等待执行,另一线程中断目前线程所产生的异常。

8.3.2 错误分类

Error 类与异常一样,它们都是继承自 java.lang.Throwable 类。 Error 类对象由 Java 虚拟机生成并抛出。 Error 类包括 LinkageError (结合错误)与 VitualmanchineError (虚拟机错误)两种子类。

1. LinkageError

LinkageError 类的子类表示一个类信赖于另一个类,但是,在前一个类编译之后,后一个类的改变会与它不兼容。

LinkageError 类包括 ClassFormatError 、 ClassCircularityError 、 ExceptionInitializerError 、 NoClassDeFormatError 、 VeritfyError 、 UnsatisfidLinkError和 IncompatibleClassChangeError 等子类。其中 NoIncompatibleClassChangeError 类又包含 AbstractMethodError 、 NoSuchField Error 、 NoSuchMethodError 、 IllegalAccessError 和 InstantiationError 子类。这些类所代表的意义如下所述。

·ClassFormatError : 类格式所产生的错误。

·ClassCircularityError : 无限循环所产生的错误。

·ExceptionInitializerError : 初始化所产生的错误。

·NoClassDeFormatError : 没有类定义所产生的错误。

·VeritfyError : 类文件某些数据不一致或安全问题所产生的错误。

·UnsatisfidLinkError : Java虚拟机无法找到合适的原始语言( Native-Language)定义的方法所产生的错误。

·IncompatibleClassChangeError : 不兼容类所产生的错误。

·AbtractMethodError : 调用抽象方法所产生的错误。

·NoSuchFieldError : 存取或改变数据域所产生的错误。

·NoSuchMethodError : 调用类方法所产生的错误。

·IllegalAccessError : 不合法存取或改变数据域调用方法所产生的错误。

·InstantiationError : 使用抽象类或接口所产生的错误。

2࿰

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

java 异常 错误_有关JAVA异常和错误(ERROR)的处理 的相关文章

  • 【Eigen 1】Eigen中的norm、normalize、normalized三者对比

    一 norm 1 对于Vector norm返回的是向量的二范数 即 x 2
  • 【vue2+element ui】添加修改共用表单的下拉框回显问题分析以及解决方案(附共用表单代码)

    目录 简介 问题复原 问题分析 共用表单代码分享 简介 本人前端水平不佳 本文分享在编写个人项目前端代码的时候遇到的回显问题的解决办法 仅供参考 问题复原 首先展示表单中的问题代码 本次前端的设计是添加和修改操作共用表单 但是其中有一个下拉
  • 陀螺产业区块链第三季

    2020年4月 国家发改委在例行新闻发布会上宣布区块链被正式列为新型基础设施中的信息基础设施 自此区块链正式搭上新基建的 风口 与传统基础设施建设相比 新型基础设施建设更加侧重于突出产业转型升级的新方向 无论是5G还是区块链 都体现出加快推
  • 网站服务器停止服务,DDoS攻击是如何让网站停止服务的?

    DDoS攻击 是一种耗尽攻击目标的系统资源 导致攻击目标无法响应正常的服务请求的网络攻击方式 虽然 大规模的DDoS攻击占据了大部分的头条新闻 但实际上 较小的DDoS攻击在网络安全环境中更为常见 在没有做好充分的防护之下 较小规模的DDo
  • 电动汽车移动充电站Mobi Charger问世

    12月26日 电动和混合动力汽车新闻网站Ecomento报道称 初创公司FreeWire针对电动汽车推出了移到充电设备Mobi Charger 目前 社会尚未认同在办公场所为电动汽车充电 举例而言 当你已经开始工作 而电动汽车正在外面充电
  • 微信小程序实现商品列表跳转详情页

    实验要求 模仿京东小程序 实现下列功能 首页包含了手机图片 手机的描述 手机的价格 购物车图标 首页显示两行文字 多余的文字隐藏 以3个点代替 点击页面不同的地方 能够跳转到不同的手机详情页面 手机详情页包含手机图片 上架日期 价格 手机描
  • centos 8 编译安装hyperscan

    一 编译安装环境配置 官方文档 http intel github io hyperscan dev reference getting started html 1 1硬件配置 配置 参数 CPU Intel Xeon Gold 5218
  • 统计学 相关性 因果_为什么相关性不表示因果关系-这种在统计中的常用说法的含义...

    统计学 相关性 因果 You might remember this simple mantra from your statistics class 您可能还记得统计课上的这个简单口头禅 Correlation does not impl
  • phpMyAdmin报错 in ./libraries/config/FormDisplay.php#661 continue targeting switch is equivalent to

    phpMyAdmin报错 in libraries config FormDisplay php 661 continue targeting switch is equivalent to break Did you mean to us
  • Android 13 媒体权限适配指南

    在 Android 系统最近的几个大版本里 更新方向有很大一部分都集中在了隐私安全这一方面 每个版本都会新增隐私安全限制 或者是对之前的隐私项进行进一步的升级 Android 10 分区存储 限制访问不可重置的硬件标识符 限制对剪贴板数据的
  • uView1.0 indexList索引列表遇到的坑

    在使用uView索引列表做通讯录的时候遇到了几个问题 先上图片 问题1 右侧的abcd首字母按钮点击错乱 比如点了f 弹出显示的是a开头的人 应该是f开头的人才对 通过排查 发现传入这个右侧组件参数的时候 后端并没有返回完整的A Z 而是有
  • C++适配器模式

    适配器模式 1 适配器模式简介 适配器模式其实是实现了两个互不兼容的已有系统之间的桥梁效果 所以适配器模式可以说是为了实现功能的一种补救措施 最好的方式是将系统重构使用工厂模式即可 但是对已有系统的重构代价过大 所以一般情况下我们都会通过适
  • 日志语义异常检测

    日志记录了软件系统运行时的详细信息 系统开发与运维人员可以根据日志监控系统剖析系统的异常行为与错误 日志异常检测可以分为语义异常 执行结果 执行异常 执行日志序列 与性能异常 执行时间 1 日志异常类型 日志记录系统在某个时间点执行了某些操
  • 设计模式-适配器模式

    文章目录 前言 介绍 实例 使用场景 优缺点 前言 当我们需要使用一个已存在的类 但其接口不符合我们的需求时 适配器模式 Adapter Pattern 可以派上用场 适配器模式是一种结构型设计模式 它允许我们创建一个中间层 将一个类的接口
  • 自己制作证件照回执

    今天身份证过期 去办理身份证 照个像回执收了30 给个6张一寸小图片 照的还不好看 因此我觉得是不是可以自己弄个回执 照片也是浪费 没有什么用 于是自己摸索了教程 1 拍一张纯色背景正面照 按照证件要求拍 手机拍照片尽量清晰 最好是相机那种
  • ReadProcessMemory Types of actual and formal var parameters must be identical

    转自 https www cnblogs com cb168 p 5884673 html delphi XE Berlin ReadProcessMemory WriteProcessMemory delphi XE Berlin dcc
  • 变长参数表va_list,模板template,打造通用函数

    假设我想写一个支持变长参数的max函数 template
  • 还在找数据库日期如何格式化嘛?看这一篇文章就够了

    目录 1 MySQL数据库 2 PostgreSQL Oracle 人大金仓 1 MySQL数据库 DATE FORMAT 函数 示例 SELECT DATE FORMAT NOW Y m d H i S 食用方法如下 DATE FORMA
  • vue中nextTick使用引起的一个小问题

    问题描述 两个页面之间进行快速切换会报错元素找不到 问题原因 该方法的调用是在nextTick中 也就是放在微任务队列中 当切换到该页面后主任务开始执行 主任务执行完成后 更新dom元素 然后才是下一个tick 然后快速切出该页面 组件销毁

随机推荐

  • 量产国产服务器cpu芯片,中国第一!百度自研芯片量产:配国产CPU

    目前 三星电子与百度联合宣布 昆仑芯片已经完成所有研发工作 将在明年初投入规模量产 采用三星14nm工艺 这也是两家巨头的第一次代工合作 2018年7月份 百度发布了自主研发的中国首款云端AI全功能AI芯片 昆仑 号称业内设计算力最高的AI
  • 单片机没有串口,你会如何打印调试信息?

    摘要 输出调试信息是软件开发中必不可少的调试利器 在出现bug时如果没有调试信息将会是一件令人头痛的事 本文主要介绍在嵌入式开发中用来输出log的方法 这些方法都是在实际开发过程中使用过的 嵌入式开发的一个特点是很多时候没有操作系统 或者没
  • 【CVE-2021-3156】linux sudo提权复现及补丁修复

    前言 今天安全圈都在刷屏 CVE 2021 3156 这个漏洞 由于这是一个缓冲区溢出漏洞 通用性比较强 因此也跟风实验一下 详细复现及修复过程如下 一 实验环境 操作系统 kali linux 2020 1b 1 adduser命令新建一
  • 【深度学习】生成对抗网络

    下文以图片作为数据举例介绍 生成网络 生成器 gt 以假乱真 生成网络的职责是把随机点模仿成与真实数据集相似的图片 这些随机点是从一个潜在空间中随机抽取的 它可以看作一个实现 点对点变换 的映射 而真实图像在图像空间中的分布十分复杂 简单的
  • 破解windows7系统密码

    theme smartblue 一 利用5次shift漏洞破解win7密码 1 1 漏洞 1 在未登录系统时 连续按5次shift键 弹出程序c windows system32 sethc exe 2 部分win7及win10系统在未进入
  • MAX232无RS232电平信号输出、MAX232/3232硬件设计电路、电荷泵电容、max3221电路

    调试MAX3221芯片过程中 经测试 电路的单片机的uart可以正常收发数据 可无论单片机怎么发送数据 max3221都没有输出RS232电平的信号 看了论坛上的留言 正常的RS232电路中 芯片 V V 引脚电压应该为一倍多将近两倍的Vc
  • 银行家算法例题

    银行家算法 Banker s Algorithm 是一个避免死锁 Deadlock 的著名算法 是由艾兹格 迪杰斯特拉在1965年为T H E系统设计的一种避免死锁产生的算法 它以银行借贷系统的分配策略为基础 判断并保证系统的安全运行 目录
  • 【PTA】乙级 前世档案

    前世档案 C语言 题干 大致思路 题干 大致思路 n个问题 m个玩家 所以共有2的次方种结果 对应第一个图中的树状图 先考虑一个玩家的回答 用s统计最后结果的序号 先让结果数num除以2 如果为y 则不做处理 如果为n 则令s num 依次
  • short s1 = 1;s1 =s1+1;有错而short s1 = 1; s1+=1正确,为何?

    s1 s1 1和s1 1是有区别的 s1 s1 1会错因为s1是short 而1是int 所以运算时会自动转换为int 再将int赋值给s1是需要强制转换 所以会错 JAVA规范上说e1 e2 实际上是 e1 T1 e1 e2 其中T1是e
  • STM32读取编码器数据(STM32-1)

    编码器 encoder 是将信号或数据进行编制 转换为可用以通讯 传输和存储的信号形式的设备 按照外形可以分为实心轴和空心轴 按照工作原理编码器可分为增量式和绝对式两类 增量式编码器是将位移转换成周期性的电信号 再把这个电信号转变成计数脉冲
  • 补码的基础知识

    数在计算机中如何表示 举例来说 8在计算机中表示为二进制的1000 那么 8怎么表示呢 很容易想到 可以将一个二进制位 bit 专门规定为符号位 它等于0时就表示正数 等于1时就表示负数 比如 在8位机中 规定每个字节的最高位为符号位 那么
  • 使用TensorFlow实现LSTM

    使用TensorFlow实现LSTM 使用Cell实现 以Cell方式实现LSTM import os import numpy as np import tensorflow as tf from tensorflow import ke
  • Ubuntu 配置第三方动态库的系统环境变量

    环境 ubuntu16 04 Qt5 7 1 简述 将第三方动态库配置到系统环境变量中 便于使用 步骤 1 将第三方动态库的头文件及 so 文件拷贝到桌面 RSAInclude文件夹 lib文件夹 2 进入桌面文件夹 打开命令框 3 输入命
  • PHP上传Excel-xls-xlsx

    PHP上传Excel xls格式和xlsx格式 PHPExcle插件 引入插件 require once assets PHPExcel 1 8 Classes PHPExcel php 视图层代码
  • 安装TomCat的艰辛历程

    学习Java的初级阶段 是个充满无奈与呵呵的时间 就安装一个TomCat我就安装了一晚上 还没有成功 所以我给我的 捉猫泪史 写个传 以免后来者重蹈覆辙 首先 安装TomCat之前 先将Java环境搭好 就是下载并安装Java develo
  • Porter-Duff compositing rules

    1984 年 7 月 计算机图形 杂志 18 期 253 259 页 刊登了Porter Thomas 和 Duff Tom 的论文 Compositing Digital Ima ges 文中讲述了12个合成规则 这些规则都是基于一些简单
  • Windows编程基础--第12节 MFC之树控件CTreeCtrl

    树形控件 Tree Control 用来显示一系列项目的层次关系 最典型的例子是显示磁盘上的文件与文件夹 如果有子项目的话 单击树形控件中的项目可以展开或者收缩其子项目 MFC提供了CTreeCtrl类进行支持 树控件在windows程序中
  • 如何评价2023美赛春季赛YZ题加赛 大学生数学建模

    作为之前数模国奖美赛F的选手 这次得空会更新下今年美赛相关的免费思路 并给出直播答疑 欢迎蹲坑 欢迎一起交流 将在本帖更新2023美国大学生数学建模数模美赛各个赛题思路 大家可以点赞收藏 一 参赛报名 组队参赛 每队人数3人 专业不限 二
  • tf.name_scope和tf.variable_scope的用法

    文章目录 tf get variable 和 tf variable tf get variable 和 tf variable scope tf variable scope 和 tf name scope tf get variable
  • java 异常 错误_有关JAVA异常和错误(ERROR)的处理

    异常的处理主要包括捕获异常 程序流程的跳转和异常处理语句块的定义等 当一个异常被抛出时 应该有专门的语句来捕获这个被抛出的异常对象 这个过程被称为捕获异常 当一个异常类的对象被捕获后 用户程序就会发生流程的跳转 系统中止当前的流程而跳转至专