Java中异常分哪两类,有什么区别?

您所在的位置:网站首页 修复可分为哪两种类型 Java中异常分哪两类,有什么区别?

Java中异常分哪两类,有什么区别?

2024-07-16 12:57:36| 来源: 网络整理| 查看: 265

面试回答

Java 中的异常,主要分为两大类,即受检异常(checked exception)和非受检异常(unchecked exception)

对于受检异常来说,如果一个方法在声明的过程中证明了其要有受检异常抛出:

public void test() throws Exception{}

那么,当我们在程序中调用他的时候,一定要对该异常进行处理(捕获或者向上抛出),否则是无法编译通过的。

这是一种强制规范。

这种异常在 IO 操作中比较多。比如 FileNotFoundException,当我们使用 IO 流处理一个文件的时候,有一种特殊情况,就是文件不存在,所以,在文件处理的接口定义时他会显示抛出 FileNotFoundException,其目的就是告诉这个方法的调用者,我这个方法不保证一定可以成功,是有可能找不到对应的文件的,你要明确的堆这种情况做特殊处理。

所以说,当我们希望我们的方法调用者,明确的处理一些特殊情况时候,就应该使用受检异常。

对于非受检异常来说,一般是运行时异常,继承自 RuntimeException。在编写代码的时候,不需要显示的捕获,但是如果不捕获,在运行期如果发生异常就会中断程序的执行。

这种异常一般可以理解为是代码原因导致的。比如发生空指针、数组越界等。所以,只要代码写的没问题,这些异常都是可以避免的。也就不需要我们显示的进行处理。

试想一下,如果你要对所有可能发生空指针的地方做异常处理的话,那相当于你的所有代码都需要做这件事。

知识扩展 什么是 Throwable

Throwable 是 java 中最顶级的异常类,继承 Object,实现了序列化接口,有两个重要的子类:Exception 和 Error,二者都是 Java 异常处理的重要子类,各自包含大量子类。

Error 和 Exception 的区别和联系

error 表示系统级的错误,是 java 运行环境内部错误或者硬件问题,不能指望程序来处理这样的问题,除了退出运行外别无选择,它是 Java 虚拟机抛出的。如 OutOfMemoryError、StackOverflowError这两种常见的错误都是 Error。

exception 表示程序需要捕捉、需要处理的异常,是由与程序设计的不完善而出现的问题,程序必须处理的问题。

分为 RuntimeException和其他异常。

请列举几个常用的 RuntimeException

这个题目,其实面试官考的还挺多的,主要考察面试者实战经验是否丰富,所以常见的 RuntimeException要能回答得尽量多回答一些。

AnnotationTypeMismatchException:注释类型不匹配异常ArithmeticException:算术异常ArrayStoreException:数组存储异常BufferOverflowException:缓冲区溢出异常BufferUnderflowException:缓冲区下溢异常CannotRedoException:无法重做异常CannotUndoException:无法撤消异常ClassCastException:类转换异常CMMException:CMM异常ConcurrentModificationException:并发修改异常DataBindingException:数据绑定异常DOMException:DOM异常EmptyStackException:空栈异常EnumConstantNotPresentException:枚举常量NotPresentExceptionEventException:事件异常FileSystemAlreadyExistsException:文件系统已存在异常FileSystemNotFoundException:文件系统未发现异常IllegalArgumentException:非法参数异常IllegalMonitorStateException:非法监视器状态异常IllegalPathStateException:非法路径状态异常IllegalStateException:非法状态异常IllformedLocaleException:错误的区域设置异常ImagingOpException:成像操作异常IncompleteAnnotationException:不完整注释异常IndexOutOfBoundsException:索引越界异常JMRuntimeException:JM运行时异常LSException:LS异常MalformedParametersException:格式错误的参数异常MirroredTypeException:镜像类型异常MissingResourceException:缺少资源异常NegativeArraySizeException:负数组大小异常NoSuchElementException:没有这样的元素异常NoSuchMechanismException:无此类机制异常NullPointerException:空指针异常ProfileDataException:配置文件数据异常ProviderException:提供者异常ProviderNotFoundException:提供者未发现异常RasterFormatException:光栅格式异常RejectedExecutionException:拒绝执行异常SecurityException:安全异常SystemException:系统异常TypeConstraintException:类型约束异常TypeNotPresentException:类型不存在异常UndeclaredThrowableException:未声明的ThrowableExceptionUnknownEntityException:未知实体异常UnmodifiableSetException:不可修改集异常UnsupportedOperationException:不支持的操作异常WebServiceException:Web服务异常WrongMethodTypeException:错误方法类型异常 说一说 Java 异常处理相关的几个关键字,以及简单用法

throws、throw、try、catch、finally

try 用来指定一块预防所有异常的程序catch 字句紧跟在 try 块后面,用来指定你想要捕获的异常的类型finally 为确保一段代码不管发生什么异常状况都要被执行throw 语句用来明确地抛出一个异常throws 用来声明一个方法可能抛出的各种异常 什么是自定义异常,如何使用自定义异常?

自定义异常就是开发人员自己定义的异常,一般通过继承 Exception 的子类的方式实现。

编写自定义异常实际上是继承一个 API 标准异常类,用新定义的异常处理信息覆盖原有信息的过程。

这种用法在 Web 开发中也比较常见,一般可以用来自定义业务异常。如余额不足、重复提交等。这种自定义异常有业务含义,更容易让上层理解和处理。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭