Java Exception和Error的区别

Java 中 Exception 和 Error 有什么区别? ![[Throwable.png]] 和 都是 类的子类(在 Java 代码中只有继承了 Throwable 类的实例才可以被 throw 或者被 catch)它们表示在程序运行时发生的异常或错误情况。总结来看: 表示可以被处理的程序异常, 表示系统级的不可恢复错误。详细说明:1)Exception:是程序中可以处理的异常情况,表示程序逻辑或外部环境中的问题,可以通过代码进行恢复或处理。常见子类有:、、、 等。 又分为 Checked Exception(编译期异常)和 Unchecked Except 阅读详情

Java中异常的抽象类是Throwable,在此基础上,派生出两大类:Error和Exception。

Error是程序中的严重错误,不应该用try…catch包括。Javadoc的说明如下:

An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions.

常见的Error有:AssertionError、OutOfMemoryError、StackOverflowError。

Exception分两类:Checked Exception和Unchecked Exception。
Unchecked Exception的基类是RuntimeException,所有继承自RuntimeException的Exception都属于Unchecked Exception, 如:NullPointerException、ArrayIndexOutOfBoundsException。
Checked Exception直接继承自Exception,所有不继承RuntimeException的Exception都属于Checked Exception,如:FileNotFoundException。
这里写图片描述

Checked Exception和Unchecked Exception都可以用try…catch包含。其中,Checked Exception在编译时检查是否有想要的catch处理,因此必要有try…catch包含,或者方法签名处抛出相应的异常。而Unchecked Exception在运行时判断,所以不一定要try…catch包含。而且,Unchecked Exception往往是程序本身存在bug,一般不catch这样的错误。

备注1:
在try中执行return语句,依然会执行finally语句块,除非在try语句中结束JVM进程(system.exit(0))

public class Hello{
    public static void main(String[] args){
        try{
            System.out.println("in try");
            return;
        }catch(Exception e){

        }finally{
            System.out.println("finally");
        }
        System.out.println("end");
    }
}
//输出
in try
finally

备注2:
不要在finally语句块调用return,否则的话,在try语句块中抛出的异常无法被调用者捕获,如下:

    try {
      doSomething();
      System.out.println("No Exception Caught!");
    } catch (RuntimeException e) {
      System.out.println("got it.");
    }
  }

  public static void doSomething() {
    try {
      throw new RuntimeException();
    } finally {
      return;
    }
  }
//输出
No Exception Caught!

备注3:
throw与throws的区别:
throw是在语句块,程序员主动抛出一个异常。
throws是在方法的签名处,说明该方法可能抛出的异常。当有多个异常抛出时,用逗号分隔。

备注4:
从JDK7开始,同一个try对应的多个catch可以写在一起。

3、Java中 Exception 和 Error 有什么区别 特性ExceptionError继承关系继承自Throwable继承自Throwable可恢复性可以通过代码捕获并处理不可以处理,通常表示不可恢复的错误处理方式可以通过try-catch或throws处理不建议捕获或处理常见情况程序中可能发生的异常情况JVM 或系统级别的严重问题Exception是程序能处理的异常,程序可以捕获并进行恢复。Error是系统级别的错误,程序无法恢复,应避免捕获它们。 阅读详情

相关推荐

无人驾驶感知融合——横摆角速度的多源估计算法解析

本文深入解析了无人驾驶感知融合中的横摆角速度多源估计算法,详细介绍了轮速差法、侧向加速度法、曲率法和惯性传感器直读法四种计算方法及其优缺点。通过卡尔曼滤波实战案例,展示了多源融合算法在提升精度和稳定性方面的显著优势,并探讨了工程实践中的时间对齐、坐标系统一等关键问题。

weixin_31458015的博客 462

java异常基础知识

一、异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。 Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。  二、 Java异常类层次结构图

always14的博客 742

AUTOSAR网络管理配置详解:Vector DaVinci工具全面讲解

手把手带你用Vector DaVinci完成AUTOSAR网络管理模块的配置,涵盖NmChannel、NmPdu、重复帧抑制等关键参数设置,深入解析CAN总线上的NM报文调度与唤醒机制,助你扎实掌握AUTOSAR网络管理核心实践。

weixin_42504649的博客 168

2020-11-08

Java:详解Java中的异常(Error与Exception) 置顶王小二(IT)2018-06-22 16:54:2666242收藏389 分类专栏:编程语言(Java基础)文章标签:trycatchfinallyError 版权 《Java:详解Java中的异常(Error与Exception)》 《Java:简述Java中的自定义异常》 《Java:简述throw-throws异常抛出》 《Java:简述try-catch-finally异常捕获》 《J...

weixin_39743450的博客 1045

别再混淆了!一张图看懂SAP特殊采购类30/40/70/80的区别与选型指南

本文深度解析SAP特殊采购类30/40/70/80的核心逻辑与业务影响,通过对比框架和真实案例帮助用户掌握其适用边界。重点介绍委外加工(类型30)、工厂间转移(类型40/70)及计划与执行分离(类型80)的配置要点与常见问题,提供选型决策树和实施检查清单,助力企业优化供应链管理。

weixin_26938645的博客 453

保姆级教程:在Windows 10上为QT5.15.2配置Android开发环境(含SDK/NDK/JDK避坑指南)

本文提供了一份详细的Windows 10环境下为QT5.15.2配置Android开发环境的保姆级教程,涵盖SDK、NDK、JDK的安装与配置,以及常见问题的避坑指南。通过优化安装流程、解决Gradle下载慢等痛点,帮助开发者快速搭建稳定的编译环境,并提供了模拟器配置和调试技巧,确保开发效率。

weixin_30919571的博客 528

(九)Java关于异常处理(Error和Exception)详解

Java关于异常处理详解

SwaggerHB的博客 1530

视觉SLAM与激光SLAM简单对比分析

本文旨在梳理目前较为前沿的SLAM技术,包括激光和视觉,主要从精度和实时性两个方面对算法进系评价。对于激光SLAM了解不深,后期需要补充相关算法的核心思想与算法框架。有问题请大佬们随时留言,我再改正。

超爱吃小蛋糕的66的博客 3854

Java中的Exception和Error:深入理解异常处理

在某些情况下,你可能需要创建自己的异常类型。这可以通过继承现有的异常类来实现。自定义异常可以让你的代码更加清晰和易于维护。Exception:程序自身导致的异常,是可预料到的异常,比如io异常、空指针异常等,可以通过catch来进行捕获处理,通常遇到这种错误,应对其进行处理,使应用程序可以继续正常运行。Error:是虚拟机生成并抛出的,如内存不足、虚拟机错误、堆栈溢出等,超出了程序员可处理的范围。二者都继承于Throwable;Exception通常表示程序可以处理的异常情况,且需要进行捕获和处理;

apple_64847327的博客 1573

YOLOv11知识蒸馏实战:让小模型拥有大模型90%精度,速度提升3倍的终极教程

在self.alpha = alpha # 蒸馏损失权重self.temperature = temperature # 温度系数,控制分布平滑度# 输出分布蒸馏(KL散度损失)# 中间特征蒸馏(MSE损失,对齐中间层特征)# 总蒸馏损失知识蒸馏是YOLOv11在“小模型高性能部署”场景的“破局之法”——它让小模型能“站在大模型的肩膀上”,兼具速度与精度。从损失函数定义到多阶段训练,再到实战落地,本教程已为你铺就了一条清晰的路径。

m0_64661770的博客 802

霜冰优化算法(RIME)详解:从自然现象到智能优化

霜冰优化算法(RIME)是一种新型元启发式优化算法,灵感源于自然界中霜冰的形成过程。该算法通过模拟软霜和硬霜的不同生长特性,实现了高效的全局探索和局部开发平衡。RIME算法包含三个核心机制:软霜搜索策略模拟随机覆盖特性实现全局探索;硬霜穿刺机制模拟定向生长特性进行局部开发;正向贪婪选择机制确保解的持续优化。与遗传算法、粒子群算法相比,RIME具有参数少、收敛快、自适应平衡等优势,特别适合处理高维复杂优化问题。算法已在工程优化、机器学习等领域获得广泛应用,发表一年内即成为高被引论文。

qq_42212808的博客 783

Java 基础-Error和Exception

这里主要是介绍 Java 中的Error和Exception,它们的共同点和不同点。

汪了吧的博客 1379

108、AWB 时间滤波器:帧间白平衡平滑,防止色彩跳变与过冲

摘要: 文章探讨了AWB(自动白平衡)时间滤波器的设计与优化,以解决帧间白平衡跳变和过冲问题。通过自适应状态机(STABLE/TRANSITION/JUMP)动态调整平滑系数alpha,结合帧率归一化和过冲保护(方向检测+限幅),实现场景切换快速响应与静态稳定性的平衡。作者分享了工程经验:避免固定阈值、联动AE/AF、真实场景验证,并推荐简化卡尔曼滤波替代IIR。最终方案在旗舰机前置摄像头中成功消除“闪白”现象,强调参数需动态适应光照与色温变化。

sundong_81的博客 64

Java异常Error和Exception的区别

异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者JVM内存溢出。 这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。-要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个

iblade的博客 5万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java中Error与Exception的区别

当我们谈论编程中的错误(Error)和异常(Exception)时,通常会涉及到程序执行中可能出现的问题和如何处理这些问题的策略。本文将详细讨论这两者的区别和如何在代码中处理它们。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 7079

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java中Error与Exception的区别

Error类和Exception类都继承自Throwable类。 Error的继承关系: Exception的继承关系: 二者的不同之处: Exception: 1.可以是可被控制(checked) 或不可控制的(unchecked)。 2.表示一个由程序员导致的错误。 3.应该在应用程序级被处理。 Error: 1.总是不可控

一转身就是一辈子 3万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java中Exception和Error有什么区别??

Java中捕获异常的情况

mar1111s的博客 679

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

Error(错误)和Exception(异常)的区别——面试

m0_66349763的博客 1673

Java - Error和Exception有什么区别?

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net Error表示系统级的错误和程序不必处理的异常,是恢复起来不是不可能但很困难的情况下的一种严重问题:比如内存溢出,不可能指望程序能处理这样的情况。 Exception表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现问题;也就是说,它表示如...

了解➔熟悉➔掌握➔精通 3万+

【JAVA】Exception和Error的区别

Eeception(异常)是程序正常运行过程中,可以预料并通过程序代码处理的不正常情况。Error(错误)是指在正常情况下,几乎不可能恢复或处理的严重问题,通常与环境相关,如JVM、系统资源耗尽等。

洗棉花糖的浣熊的博客 472

java exception的区别_java中error和exception的区别

Error类和Exception类的父类都是throwable类,他们的区别是:Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和预防,遇到这样的错误,建议让程序终止。Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异...

weixin_34959771的博客 291

Java中Exception 和 Error 有什么区别

在Java中,Exception和Error都是Throwable类的子类,表示程序中发生了一些异常情况。Exception:表示程序中可以被捕获和处理的异常,是程序员可以预测和处理的异常,通常是由程序逻辑或用户输入错误导致的,如输入不合法、文件不存在等。Exception分为受检查异常(checked exception)和非受检查异常(unchecked exception)。受检查异常必须在方法声明中声明并处理,否则代码无法通过编译;而非受检查异常可以不处理,但是如果不处理就会导致程序崩溃。

tyxjolin的专栏 258

Java面试必备:Java 中 Exception 和 Error 的区别

在 Java 编程中,异常处理是保证程序健壮性的重要机制。Java 提供了 `Throwable` 类作为所有错误和异常的父类,其下有两个主要子类:`Exception` 和 `Error`。本文将详细探讨这两者的区别,并通过代码示例和流程图帮助理解。

qq_58299462的博客 1350

Java 中 Exception 和 Error 的区别

Exception通常表示可以捕获和处理的异常,用于程序级别的错误。Error通常表示严重的问题,这些问题是程序无法处理的,通常表示系统级的错误。在编写 Java 程序时,你应该关注如何处理Exception,而对于Error,通常只需要了解它们的存在,并确保程序能够优雅地处理或记录这些错误情况。

Maisule的博客 180

417. Java 中 Exception 和 Error 有什么区别?

Exception表示程序中可以预期的、可以处理的异常。程序可以通过适当的异常处理逻辑进行恢复。Error则表示系统级的、不可恢复的错误。通常情况下,程序无法处理这种错误,也不应该尝试处理。因此,我们一般关注的是Exception,而Error通常意味着更严重的问题,比如 JVM 或系统资源不可用。

开源驱动,创造价值;坦诚清晰,快速失败;让复杂可计算。 1123

Java中error和Exception区别

Java中error和Exception区别

xiaoge613的博客 4278
上一篇: Fail Fast与Fail Safe的区别
下一篇: 浅谈Git与SVN的使用感受
Hooting
博客等级 码龄17年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值