JAVA中Error与Exception的区别——面试

1.Error与Exception的区别:

相同点:Error(错误)和Exception(异常)都是Throwable类的子类

不同点:

              1.Error表示VM无法解决或恢复困难的严重问题,

               例如:OutOfMemoryError(内存不足)和StackOverflowError(堆栈溢出)

               Exception表示程序本身可以处理的异常

               例如:NullPointerException(空指针异常)和ArrayIndexOutOfBoundsException                 (数组下标越界异常)。

               2.Exception可以通过try-catch块来处理,而Error通常无法处理

2.你所遇到的Exception(或RuntimeException运行时异常)有哪些(例举出5条):

Exception是指在程序运行期间可能会发生的执行异常,需要将可能会出现相应问题的代码进行异常捕获,并处理。

  1. NullPointerException(空指针异常):当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
  2. ArrayIndexOutOfBoundsException(数组下标越界异常):当应用程序试图访问数组的无效索引时,抛出该异常。
  3. ClassCastException(类型转换异常):当试图将对象强制转换为不是实例的子类时,抛出该异常。
  4. ArithmeticException(算数异常):当出现异常的运算条件时,抛出该异常,例如除数为零。
  5. InputMismatchException(输入类型不匹配异常):当一个变量或者对象的类型与所期望的类型不匹配时,会抛出类型不匹配异常。
  6. ClassNotFoundException(类不能找到异常):当应用程序试图根据字符串名称加载类时,找不到与字符串名称对应的类的时候,抛出该异常。
  7. IOException(输入输出流异常):当 Java IO 中出现问题时,抛出该异常。
  8. FileNotFoundException(文件不能找到异常):当应用程序试图打开指定路径名表示的文件失败时,抛出该异常。

其中前六个为运行时异常

常见的Error包括(了解):

Error是Java中的一种非受检异常,通常表示代码运行时JVM出现问题。

  1. OutOfMemoryError:内存不足错误;
  2. StackOverflowError:栈溢出错误;
  3. NoClassDefFoundError:类定义错误;
  4. UnsatisfiedLinkError:本地方法库链接错误;
  5. ExceptionInInitializerError:静态初始化器错误;
  6. AssertionError:断言错误;
  7. LinkageError:链接错误。                                                                                          

这些错误通常表示JVM出现了无法恢复的问题,因此应用程序不应该去处理此类错误。按照Java惯例,我们是不应该实现任何新的Error子类的

3.Exception中的checked exception与unchecked exception区别(or 编译时异常与运行时异常(RuntimeException)的区别):

  1. checked exception(编译时异常)是指在编译时就能被检测到的异常,必须在代码中进行处理,否则编译不通过。例如IOException、SQLException等。
  2. unchecked exception(运行时异常)是指在编译时无法被检测到的异常,通常是由程序逻辑错误引起的,例如NullPointerException、ArrayIndexOutOfBoundsException等。这些异常不需要在代码中进行处理,但是如果不进行处理,程序会在运行时抛出异常并终止。编译时不强制要求处理,但一般都进行处理。

4.异常处理所遇到的关键字:

http://t.csdnimg.cn/bQAPp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产接口测试工具APIpost

说实话,了解APIpost是因为,我的所有接口相关的文章下,都有该APIpost水军的评论,无非就是APIpost是中文版的postman,有多么多么好用,虽然咱也还不是什么啥网红,但是不知会一声就乱在评论区打广告…

Python如何传递任意数量的实参及什么是返回值

Python如何传递任意数量的实参 传递任意数量的实参 形参前加一个 * ,Python会创建一个已形参为名的空元组,将所有收到的值都放到这个元组中: def make_pizza(*toppings):print("\nMaking a pizza with the following toppings: "…

acwing算法提高之动态规划--最长上升子序列模型(下)

目录 1 基础知识2 模板3 工程化 1 基础知识 暂无。。。 2 模板 暂无。。。 3 工程化 题目1:拦截导弹。给你N个数,第(1)问求最长下降子序列,第(2)问求需要多少个下降序列才能把所有元素覆盖…

Retrofit的转换器

一、前言 1.为什么要使用Retrofit转换器 在我们接受到服务器的响应后,目前无论是OkHttp还是Retrofit都只能接收到String字符串类型的数据,在实际开发中,我们经常需要对字符串进行解析将其转变为一个JavaBean对象,比如服务器响应…

Codeforces Round 913 (Div. 3)(A~G)

1、编程模拟 2、栈模拟 3、找规律?(从终止状态思考) 4、二分 5、找规律,数学题 6、贪心(思维题) 7、基环树 A - Rook 题意: 直接模拟 // Problem: A. Rook // Contest: Codeforces - C…

Kotlin Lambda使用

Kotlin Lambda使用 fun main() /*: Unit*/ {// Lambda会慢慢的难度升级// Kotlin Unit Java void// TODO 下面全部都是函数声明, 既然是函数声明,就不能调用// 函数的声明 用lambda去描述函数的声明val method1 : () -> Unitval method2 : (Int, In…

火焰图的基本认识与绘制方法

火焰图的认识与使用-目录 火焰图的基本认识火焰图有以下特征(on-cpu)火焰图能做什么火焰图类型On-CPU 火焰图和Off-CPU火焰图的使用场景火焰图分析技巧 如何绘制火焰图生成火焰图的流程1.生成火焰图的三个步骤 安装火焰图必备工具1.安装火焰图FlameGraph脚本2.安装火焰图数据采…

智能优化算法应用:基于人工水母算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于人工水母算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于人工水母算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工水母算法4.实验参数设定5.算法结果6.参考…

4 STM32MP1 Linux系统启动过程

1. ROM代码 这是ST官方写的代码,在STM32MP1出厂时就已经烧录进去,不能被修改。ROM代码是上电以后首先执行的程序,它的主要工作就是读取STM32MP1的BOOT引脚电平,然后根据电平来判断当前启动设备,最后从选定的启动设备里…

快速认识,后端王者语言:Java

Java作为最热门的开发语言之一,长居各类排行榜的前三。所以,就算你目前不是用Java开发,你应该了解Java语言的特点,能用来做什么,以备不时之需。 Java 是一种高级、多范式编程语言,以其编译为独立于平台的字…

快手数仓面试题附答案

题目 1 讲一下你门公司的大数据项目架构?2 你在工作中都负责哪一部分3 spark提交一个程序的整体执行流程4 spark常用算子列几个,6到8个吧5 transformation跟action算子的区别6 map和flatmap算子的区别7 自定义udf,udtf,udaf讲一下…

Java链接数据库

本文介绍的是Java链接数据库中的JDBC操作,JDBC虽然现在用的不多,但面试的时候会问道。需要有相应的了解。下面以链接MySQL为例子。 JDBC 什么jdbc Java DataBase Connectivity是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和…

初识Protobuf与Protobuf的安装

目录 一、Protobuf 1.回顾序列化 2.Protobuf的特性 3.Protobuf的下载 ①ProtoBuf 在 window 下的安装 ②ProtoBuf 在 Linux 下的安装 一、Protobuf 1.回顾序列化 我们在先前的学习中也遇到过序列化。所谓序列化我的理解是,将复杂的对象以特定的方式转换以便于…

【计算机网络笔记】物理层——信道与信道容量

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

【稳定检索|投稿优惠】2024年光电信息与机器人发展国际会议(ICOIRD 2024)

2024年光电信息与机器人发展国际会议(ICOIRD 2024) 2024 International Conference on Optoelectronic Information and Robot Development(ICOIRD 2024) 一、【会议简介】 信息技术与人工智能的浪潮正在激荡,不断刷新我们生活的页面,深刻烙印在光电信息…

Homework 3: Higher-Order Functions, Self Reference, Recursion, Tree Recursion

Q1: Compose 编写一个高阶函数composer,它返回两个函数func和func_adder。 func是一个单参数函数,它应用到目前为止已经组合的所有函数。这些函数将首先应用最新的函数(参见doctests和示例)。 func_adder用于向我们的组合添加更多…

虚拟局域网(VLAN)解析(Virtual Local Area Network)(用于在不受物理位置限制的情况下将设备划分到同一网络或不同网络)

文章目录 虚拟局域网(VLAN)解析1. VLAN简介2. VLAN工作原理3. VLAN类型1. 静态VLAN2. 动态VLAN 4. VLAN优点提高安全性降低网络拥堵更简单的管理 5. 如何配置VLAN1. 进入全局配置模式2. 创建VLAN并命名3. 将端口分配给VLAN4. 验证VLAN配置 6. 常见问题与…

“快慢指针”思想在物理或者逻辑循环中的应用

1 基础概念 1.1 什么是物理循环和逻辑循环? 物理循环是指物理索引访问顺序上相邻,逻辑上也相邻,比如循环链表,逻辑循环则指物理的索引上不一定相邻 1.2 快慢指针本质上可以解决逻辑循环问题,而物理循环也属于逻辑循…

用AI在抖音直播做姓氏头像的全新玩法,详细分析制作教程

前段时间在圈子里给大家分享了用AI写艺术字做小红书账号案例玩法,同学们都比较热衷学习。纷纷动手实践。 事实上用AI艺术字变现玩法还有许多。 例如上周末在星球给圈友们分享的一个AI艺术字直播的抖音账号,直播内容形式很简单,就是展现用AI…

七大经典高效学习方法

金字塔学习模型 金字塔学习是美国学习专家爱德加戴尔1946年提出的。 他将学习分为主动学习和被动学习两种类型,用数字形象地呈现了采用不同学习方式,学习者在两周后还能记住的内容有多少。 被动学习:通过听讲、阅读、视听、演示这些活动&a…