Java核心技术36讲 第二讲:Exception和Error

Java核心技术面试精讲 第36讲 | 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景? 在日常开发中,尤其是业务开发,少不了利用Java对数据库进行基本的增删改查等数据操作,这也是Java工程师的必备技能之一。做好数据操作,不仅仅需要对Java语言相关框架的掌握,更需要对各种数据库自身体系结构的理解。今天这一讲,作为补充Java面试考察知识点的完整性,关于数据库的应用和细节还需要在实践中深入学习。今天我要问你的问题是,谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景? 阅读详情

对比Exception和Error

  1. Exception和Error都是继承自Throwable类。
    Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。
    Error是指在正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序(比如JVM自身)处于非正常情况,所以不便于也不需要捕获,常见的比如OutOfMemoryError之类都是Error的子类。

  2. Exception又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常必须在源代码里显示捕获处理,不检查异常就是所谓的运行时异常, 类似NullPointerException、ArrayIndexOutOfBoundsException之类,通常可以编码避免逻辑错误,可以根据需要判断是否去捕获,并不会在编译时强制要求。

  3. 尽量不要捕获类似Exception这样的通用异常,而是应该捕获特定异常

  4. 不要生吞(swallow)异常。往往是基于假设这段代码是不可能会发生,或者感觉忽略异常是无所谓的。

  5. try-catch代码段会产生额外的性能开销,建议仅捕获有必要的代码段,尽量不要一个大的try包住整段代码。try-catch不如if-else高效。
    Java每实例化一个Exception,都会对当时的栈进行快照,这是个相当重的操作,性能开销大。

Throwable

  • Error
    • LinkageError
    • NoClassDefFoundError *
    • UnsatisfiedLinkError
    • ExceptionInInitializerError
    • VirtualMachineError
    • OutOfMemoryError
    • StackOverflowError
  • Exception
    • IOException
      (Checked Exception)
    • NullPointerException
    • ClassCastException
    • SecurityException
    • ClassNotFoundException *

ClassNotFoundException 和 NoClassDefFoundError 区别

ClassNotFoundException;
当应用程序试图通过类的字符串名称,使用以下三种方法装入类,但却找不到指定名称的类定义时抛出该异常,是显式类装载的抛出的异常。
1.类 Class 中的 forName() 方法。
2.类 ClassLoader 中的 findSystemClass() 方法。
3.类 ClassLoader 中的 loadClass() 方法。

NoClassDefFoundError:
如果 Java 虚拟机或 ClassLoader 实例试图装入类定义(作为正常的方法调用的一部分,或者作为使用 new 表达式创建新实例的一部分),但却没有找到类定义时抛出该异常。
当目前执行的类已经编译,但是找不到它的定义时,会存在 searched-for 类定义。
实际上,这意味着 NoClassDefFoundError 的抛出,是不成功的隐式类装入的结果。
简单说来,就是引用的类在类路径中没有找到。

杨晓峰Java核心36讲学习笔记 最近在极客时间上订阅了Oracle首席工程师杨晓峰的Java核心技术36讲, 接下来会对每一课的学习: 记下学习笔记 有不懂的地方继续深入 一些思考或者总结。 下面从第一课开始,Exception和Error有什么区别。 Exception 和Error都继承自Throwable父类。 Error是指正常运行情况下,不太可能出现的情况,一旦Error发生一般都会导致程序处于非正常不可恢复的... 阅读详情

相关推荐

PyCharm启动报错急救指南:3步定位.vmoptions文件位置(Win/Mac路径详解)

本文针对PyCharm启动失败问题,提供了一份详细的急救指南。核心在于精准定位并修复关键的.vmoptions配置文件。文章通过三步法详解了在Windows和macOS系统上查找该文件的具体路径,并分析了因新旧版本冲突、破解补丁残留或参数设置错误导致启动失败的常见场景及解决办法,帮助开发者快速恢复IDE的正常工作。

weixin_28835789的博客 704

Java核心技术36讲(整理)

1、谈谈你对 Java 平台的理解? “Java 是解释执行”,这句话正确吗? Java特性: 面向对象(封装,继承,多态) 平台无关性(JVM运行.class文件) 书写一次,到处运行”(Write once, run anywhere) 语言(泛型,Lambda) 类库(集合,并发,网络,IO/NIO) JRE(Java运行环境,JVM,类库) JDK(Java开发工具,包括JRE,jav...

Muscleheng的博客 1万+

手把手教你用Wireshark国密版分析TLCP和IPSec协议(附下载地址)

本文详细介绍了Wireshark国密版在TLCP和IPSec协议分析中的实战应用,包括环境配置、协议解析、合规性检查及高级分析技巧。该工具针对商用密码算法(如SM2/SM3/SM4)进行了专项优化,支持GB/T 38636-2020 TLCP和GB/T 36968-2018 IPSec VPN等国家标准,帮助开发者与安全工程师高效完成密评分析任务。

weixin_29325955的博客 555

【总结】Java核心技术36讲知识点大纲(转载)

Java核心技术36讲知识点总结大纲 1 Java平台的理解 Java的特性,解释运行和编译运行 2 Exception 和 Error 有什么区别 理解Java的异常体系的设计,Throwable ,Exception,Error 的关系理解ClassNotFoundException 与NoClassDef...

weixin_44202871的博客 523

网络系统实现技术之IPX与SPX

IPX/SPXNovell NetWare网络Novell公司为适应网络发展,将主机网络转换为PC网络,开发了Novell NetWare网络系统。该系统中基于客户机/服务器模式。以普通PC机做为客户机,以性能强大的服务器做为服务器,为客户机提供文件服务、数据库服务及其他服务。与前面的SNA模型一样,Novell NetWare也早于OSI模型,所以不能与OSI模型严格对应,但也有很明

成片的大树 9164

网易数智CoreAgent实战:5步教你打造企业级AI数字员工(附避坑指南)

本文以网易数智CoreAgent智能体协作中枢为核心,提供了一份企业级AI数字员工的实战部署指南。文章详细拆解了从环境准备、智能体配置、业务集成、安全合规到效果评估的五个关键步骤,并分享了部署过程中的常见“避坑”经验,旨在帮助企业技术团队高效、安全地将AI智能体落地于实际业务场景,解决AI落地难题。

rice5的博客 957

Java核心技术36讲

java平台的理解 谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确么? Java本身是一种面向对象的语音,最显著的特性有两个方面,一个是所谓的“书写一次,到处运行”(Write once,run anywhere),能够非常容易地获得跨平台能力;另一个就是垃圾收集(GC,Garbage Collection) Java源代码,首先通过Javac编译成字节码(bytecode),然后在运行时,通过Java虚拟机内嵌的解释器将字节码转换为最终的机器码。但是常

常敲代码手不生 425

景区导览系统|景区展馆智能导览|小程序导览|电子导览手绘地图制作

AI 数字导游就像一位随时陪伴在游客身边的专属导游,能够根据游客的提问,迅速、准确地提供详细的景点介绍、历史文化知识讲解,甚至能根据游客的兴趣爱好和实时位置,为其智能规划个性化的游览路线。在手绘地图中可以显示景区中的景点信息、景点和景点之间的路径,也可以显示景区的关键地点信息:景区全景、植物景观、河流、道路、地形面貌、卫生间等公共设施~无论是景区还是展馆,道可云AI智能导览系统都能通过丰富的功能、先进的技术,为游客打造便捷、智能、个性化的游览体验,成为文旅行业数字化转型的得力助手。

道可云 1148

Java核心技术36讲 - 学习笔记

第9讲 对比Hashtable、HashMap、TreeMap有什么不同? 一、主要不同点 数据结构 底层实现 线程安全 性能 支持null键值 HashTable 基于哈希表 是 HashMap 基于哈希表 否 TreeMap 基于红黑树 否 1. - 基于哈希表实...

Funn Rose's Blog 2304

机器人视觉实战:用OpenCV搞定手眼标定(附完整C++代码)

本文详细介绍了使用OpenCV实现机器人视觉中的手眼标定技术,包括核心算法、工业场景优化及完整C++代码示例。通过解析坐标系转换问题,提供从数据采集到标定验证的全流程解决方案,帮助开发者在复杂工业环境中实现高精度机械臂与视觉系统的协同作业。

weixin_29306571的博客 484

18、Excel VBA编程:自定义函数创建与代码调试全攻略

本文详细介绍了Excel VBA中自定义函数的创建方法,以获取单元格注释为例演示了完整开发流程,并深入讲解了代码调试的重要性与核心工具。内容涵盖三种主要错误类型及其应对策略,系统介绍了调试工具栏、断点、逐行执行、Locals窗口、Immediate窗口等实用功能。通过综合案例展示了如何运用调试技术解决实际问题,并总结了提前规划、逐步测试、日志记录等最佳实践,帮助读者提升VBA编程效率与代码质量。

life6的博客 101

【Java核心技术36讲】第2讲:Exception和Error有什么区别

Error在编译时会被发现,程序就会停止编译。 Exception在编译时不会被发现,在执行过程中被抛出。

Gaowenrou的博客 248

基于simulink 的不间断电源ups的项目实例

UPS系统的核心组件包括整流器、逆变器、电池管理系统和控制系统。- **Three-Phase Controlled Rectifier**:设置触发角为0度,用于控制整流器的输出电压。- **Three-Phase Inverter**:设置逆变器的输出频率为60Hz,用于将直流电转换为交流电。- **Control System**:编写MATLAB函数,用于监测市电状态并控制各模块的工作模式。- **Step**:设置阶跃时间,例如0.05秒,阶跃前后的值分别为0和1,用于模拟市电中断。

xiaoheshang_123的博客 711

Java36讲笔记 第二讲Exception和Error有什么区别·

Exception和Error有什么区别 ,另外,运行时异常与一般异常有什么区别? 1.Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(Throw)或者捕获Catch,它是异常处理机制的基本组成类型。 Exception和Error体现了Java平台设计者对不同异常情况的分类,Exception是程序正常运行中,可以预料的...

weixin_41888669的博客 360

ssm框架搭建

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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java核心36讲之Exception和Error有什么区别?

极客时间,杨晓峰老师的课,特别好的课程,学习一下,记一些东西,微信搜索“极客时间”就ok啦 前面一篇:Java核心36讲之对Java平台的理解 问题:请对比Exception和Error,另外运行时异常与一般异常有什么区别? ...

anticlql的博客 333

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

36讲第02讲:Exception和Error有什么区别?

Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类。Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。Error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序(比如JVM 自身)处于非正常的、不可恢复

m0_37088025的博客 256

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java核心技术36讲读书笔记

Java核心技术36讲读书笔记 这是在极客头条上的一个专栏的读书笔记 文章目录Java核心技术36讲读书笔记谈谈你对java平台的理解解答扩展jdk中常用的调试工具有哪些?编译执行和解释执行的区别?常见的编译语言和解释语言都有哪些?Exception和Error的区别解答扩展常见的Error和Exception都有哪些NoClassDefFoundError和ClassNotFoundExcept...

_TheDawn_的博客 653

读Java核心技术36讲有感——谈谈对Java的理解,谈谈Exception和Error

读过杨晓峰老师的36讲之后,想总结下自己的感想,写下来也有助于记忆,方便以后面试查阅和复习。题目所提到的话题本来是两讲,但是由于感想篇幅较短,所以合成一篇来写。 一、谈谈对Java平台的理解: 1、Java平台是一个面向对象编程的语言,具有封装、继承、多态三大特性。其最大的优点是”Write Once,Run Anywhere”,即“编写一次,到处运行”,这句话的基础实际上是依靠Java通...

雏鹰 2098

Java核心技术36讲(2)—— Exception和Error有什么区别?

转载地址:https://time.geekbang.org/column/article/6849 Java 语言在设计之初就提供了相对完善的异常处理机制,这也是 Java 得以大行其道的原因之一,因为这种机制大大降低了编写和维护可靠程序的门槛。如今,异常处理机制已经成为现代编程语言的标配。 问题,请对比 Exception 和 Error,另外,运行时异常与一般异常有什么区别? 典型回答...

weixin_40805079的博客 311

杨晓峰-java核心技术36讲(学习笔记)-2讲 | Exception和Error有什么区别?

杨晓峰-java核心技术36讲(学习笔记) 接下来我会分享杨晓峰-java核心技术36讲的学习笔记,内容较多,补充了其中一些牛人评论,相对详细(仅供个人学习记录整理,希望大家支持正版:https://time.geekbang.org/column/intro/100006701) 2讲 | Exception和Error有什么区别? 请对比Exception和Error,另外,运行时异常与一般异常有什么区别? 典型回答 Exception和Error都是继承了Throwable类,在Java中只有Thro

niuyan666的博客 436

Java中Exception 和 Error 的区别

Java中Exception 和 Error 的区别 文章目录Java中Exception 和 Error 的区别经典回答:Exception 和 Error 举例备注:1. NoClassDefFoundError 和 ClassNotFoundException 的区别:2. 为什么RuntimeException及其子类是非检查型异常,RuntimeException 不也是继承自Excep...

轻狂書生的博客 646

java中Exception和Error

1.相同点。 Exception和Error都是继承了Throwable类,在java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),他是异常处理机制的基本组成类型。 2.不同点。 Exception是程序运行中可以预料的意外情况,可以并且应该被捕获并进行相应处理。 Exception又分为可检查异常和不检查异常(又叫运行时异常,继承了RunTimeEx...

qq_28702285的博客 309

Java Exception 和Error

(事先声明:该文章并非完全是我自己的产出,更多的是我个人在看到资料后通过理解并记录下来,作为自己阅读后的一个笔记;我现在试图对自己多年工作中的知识点做一个回顾,希望能融会贯通) (此文参考<Java核心技术36讲>第二讲) Exception & Error Java的Exception和Error都继承了Throwable,且仅有Throwable类能被抛出(th...

weixin_30839881的博客 110

Java核心36-exception,error区别

一.Exception与Error Throw early catch late ,异常尽早抛出,捕获异常后避免’生吞’或者直接使用Exception(要更细致的异常) try catch 尽量捕获关键代码段,否则增加系统开销 Java每实例化一个Exception都要保存一份栈信息快照,增加系统开销 NoClassDefFoundError与ClassNOtFoundException区别: ...

菜鸟腾飞 285

Java知识点梳理:Exception和Error

Java语言在设计之初就提供了相对完善的异常处理机制,这也是Java得以大行其道的原因之一,因为这种机制大大降低了编写和维护可靠程序的门槛。 本文参照:极客时间-《java核心技术36讲》-第二讲 Throwable Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成...

hzk1562110692的专栏 331

对比Exception和Error——运行时异常与一般异常的区别

1、Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。 2、Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。 3、Error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致...

Mr_Curious的博客 6939
上一篇: Java核心技术36讲 第一讲:Java平台的理解
下一篇: Java核心技术36讲 第三讲:final、finally、finalize的不同
爱玲姐姐
博客等级 码龄9年 994粉丝 301原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值