Java 核心知识回顾 - 异常处理机制

Java面试宝典:全面掌握编程、架构和设计模式 本文还有配套的精品资源,点击获取 简介:Java面试题大全是一个全面的参考资料,涉及Java编程语言的各个方面,从基础语法到面向对象概念,再到集合框架、异常处理、多线程、JVM内存管理、IO与NIO、反射与注解、设计模式、框架与库、数据库和分布式微服务架构等。本资料旨在帮助Java开发者深入理解并掌握面试中可能遇到的关键技术问题,为职业生涯提供技术提升。 1. J... 阅读详情

异常是程序中的一些错误,但并不是所有的错误都是异常,有些错误有时候是可以避免的。

异常分类

Java 中的异常主要分为两类 Error 和 Exception。

Error 和 Exception 都是 Throwable 的子类,Error 表示程序无法解决的错误,常见的有 OutOfMemoryError、StackOverflowError错误等。

Exception 表示程序执行时发生的异常,可以被处理。常见的有 NullPointerException、ClassNotFoundException、IndexOutOfBoundsException 异常等。

系统一旦出现 Error 错误,那么整个系统将无法继续运行。但是系统出现异常,只要处理得当,不会对系统造成多大影响。

异常又分为受检异常和运行时异常。

受检异常可以在编译时检测到,必须进行手动处理,否则无法通过编译。常见的有 IOException,FileNotFoundException异常。

运行时异常属于代码逻辑性异常,需要在运行期出现,可以不进行处理,同样可以通过编译,但是在运行时一旦出现该异常,则当前线程停止执行。一般情况下我们都会对运行时异常进行捕捉处理,以保证程序的正常运行,对于无关紧要的部分可以直接catch住,但对于影响当前线程后续执行的异常必须立即抛出来结束线程执行,这样能有效保护数据,不会因为异常而产生错误数据,一般我们会在事务中执行,一旦抛出异常,执行回滚,保证数据安全。常见的有 NullPointerException.

异常处理框架

try catch

通常使用 try catch 来捕获异常

try {
    int[] a = {1, 2};
    int x = a[0] / 0;
} catch (ArithmeticException e) {
    e.printStackTrace();
}

多重捕获块

try {
    int[] a = {1, 2};
    int x = a[0] / 0;
    int y = a[2];
} catch (ArithmeticException e) {
    e.printStackTrace();
} catch (ArrayIndexOutOfBoundsException e) {
    e.printStackTrace();
}

或者这样

try {
    int[] a = {1, 2};
    int x = a[0] / 0;
    int y = a[2];
} catch (ArithmeticException | ArrayIndexOutOfBoundsException e) {
    e.printStackTrace();
}

finally

finally 不管有没有发生异常都会执行,除非退出 Java 虚拟机。通常用来用来关闭连接或者释放资源。

OutputStream os = null;
try {
    os = new FileOutputStream("D:/a.txt");
    os.write("hello world".getBytes());
    os.flush();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        if (os != null) {
            os.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

try-with-resource

Jdk1.7 中新增了 try-with-resource 语法,当一个外部资源的对象实现了 AutoCloseable 接口,Jdk1.7 中便可以利用 try-with-resource 语法更优雅的关闭资源。

try (OutputStream os = new FileOutputStream("D:/a.txt");){
    os.write("hello world".getBytes());
    os.flush();
} catch (IOException e) {
    e.printStackTrace();
}

throw throws

throw 用于手动抛出异常

throws 用于声明方法可能会抛出的异常

public void throwsThrow(String str) throws Exception{
    if (str == null) {
        throw new Exception("parameter str not be null");
    }
}
保姆级教程:用Cadence Sigrity Power DC搞定HI3516A板卡电源压降仿真(含常见报错解决) 本文提供了一份详细的Cadence Sigrity Power DC直流压降仿真教程,特别针对HI3516A板卡设计。从环境准备、器件建模到仿真执行和结果解读,全面覆盖了电源完整性分析的关键步骤,并提供了常见报错的解决方案,帮助工程师快速掌握直流压降分析技术。 阅读详情

相关推荐

INCA基础教程

以软件自带Demo为例记录INCA学习过程,主要内容包括测量与标定。

yunqianrui的博客 6万+

java异常知识点和常见的一些异常归纳

异常知识点: 一:异常处理机制       异常是指使运行的程序中断或者停止的的事件,这些事件通常是由硬件或者程序逻辑不当引起的,对这些事件的捕获和处理可以增强代码的健壮性。 二:异常的分类      在Java里异常可以分为错误和异常,错误是由于java虚拟机或者硬件出错导致的,这些大都是人为不可控的,异常一般是由于代码逻辑引起的,我们可以对其进行捕获并进行处

张润东的博客 1760

STM32CUBEIDE调试中HardFault_Handler崩溃的故障分析器实战解析

本文详细解析STM32CUBEIDE调试中HardFault_Handler崩溃问题的实战处理方法。通过内置故障分析器自动诊断硬件异常原因,如内存越界、堆栈溢出等,提供图形化界面简化调试流程,并分享配置步骤、典型案例及高级调试技巧,帮助开发者快速定位和解决嵌入式系统崩溃问题。

night的博客 644

Java核心(异常处理-异常2 )

一、Java 常见异常    在 Java 中提供了一些异常用来描述经常发生的错误,其中,有的需要程序员进行捕获或声明抛出,有的是有 Java 虚拟机自动进行捕获处理的。  常见的异常类异常类说明ClassCastException类型转换异常ClassNotFoundException未找到相应类异常ArithmeticException算术异常ArrayIndexOutOfBoundsExce...

jsl-空零之旅 519

别再让C盘爆红了!手把手教你将Anaconda虚拟环境迁移到其他盘(附权限问题解决)

本文详细指导如何将Anaconda虚拟环境从C盘迁移到其他驱动器,解决C盘空间不足问题。通过conda config命令和直接修改.condarc配置文件两种方法,确保环境迁移顺利进行,同时提供权限问题解决方案和长期维护技巧,帮助用户高效管理虚拟环境。

weixin_42525289的博客 421

西门子1500T系列凸轮同步(CAMIN指令用法)

添加凸轮工艺对象(TO_CAM),也就是凸轮表。开始编程,先写2个轴的使能、回原点与主轴的定位。监控主轴与从轴的位置、速度关系是否满足实验要求。1.添加工艺对象(1个定位轴,1个同步轴)调用CAMIN指令 ,凸轮耦合。主轴为旋转轴且为模数轴。3.调用插补凸轮盘指令。4.仿真、监控、调试。

gyxgyx789的博客 1万+

Java基础知识回顾- 异常处理机制

在 Java 中,所有的异常都有一个共同的祖先java.lang包中的 Throwable类。 Throwable: 有两个重要的子类: Exception(异常) 和 Error(错误) ,二者都是 Java 异常处理的重要子类,各自都包含大量子类。 Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java...

随时记 170

Linux 命令之 locale -- 设置和显示程序运行的语言环境

文章目录命令介绍locale 设置规则使用详解(一)查看当前 locale 设置(二)查看当前系统所有可用 locale(三)设置系统的 locale 命令介绍 locale 是 Linux 系统中多语言环境的设置接口,在 Linux 中,使用 locale 命令来设置和显示程序运行的语言环境,locale 会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境。 通过 locale 来设置程序运行的不同语言环境,locale 由ANSI C提供支持。locale 的

liaowenxiong的博客 3万+

Java课程综合复习总结

在这篇文章中,我将带领大家回顾我们Java课程的第一章到第六章的核心知识点。每一章节我都会详细总结核心概念和知识点,并附上Java代码示例。同时,我也会分享我的个人理解、学习心得以及遇到的难点和解决方法。希望这篇文章能够帮助大家更好地理解和复习课程内容。

C2513806722的博客 1180

嵌入式Linux Qt/QML开发实战:从Buildroot配置到应用部署

本文详细介绍了嵌入式Linux Qt/QML开发全流程,从Buildroot系统配置、交叉编译工具链搭建到应用部署与调试。以RK3506开发板为例,提供实战指南,帮助开发者高效完成嵌入式应用开发,解决常见环境配置与性能优化问题。

m2n3o4p5的博客 227

133.在 Vue3 中使用 OpenLayers 实现画多边形、任意编辑、遮罩与剪切处理功能

《Vue3+OpenLayers实现多边形绘制与区域处理》摘要:本文介绍如何基于Vue3+OpenLayers+ol-ext实现地图多边形交互功能。核心功能包括:鼠标绘制任意多边形、拖动顶点编辑边界、遮罩显示(非选区变红)、选区剪切显示及功能重置。技术方案采用OpenLayers处理地图渲染,ol-ext实现高级遮罩/剪切效果,ElementPlus提供UI控件。该方案适用于城市规划、园区展示等需要区域标记的场景,完整代码展示了从初始化、绘制、编辑到特效处理的全流程实现。

小彭的博客 962

java基础复习-高手回头看:总结梳理篇

你是否会有开发工作了几年想往回看复习基础的想法?没有,那你学的很扎实、很牛逼!知识不是直线而是树状的,需要慢慢积累和完善,有时间就会把前几年的java基础笔记整理整理 java异常 java异常:1、到底什么是异常?异常的主要作用? java异常:2、异常的分类?Exception、Error java网络编程 tcp/udp/socket(13) java网络编程:1、计算机网...

鲁迷那的专栏—坚持实践后再写出来! 295

构建.NET网站:VSCode还是Visual Studio?揭开开发工具的选择之谜

选择VSCode还是Visual Studio,归根结底是取决于你的具体需求和偏好。🔍 这两款工具各有千秋,都能为你的.NET网站开发提供强大的支持。希望这篇文章能够帮助你更全面地了解这两款工具,做出明智的选择。

墨夶的博客 788

Java的上升图_理解Java机制最受欢迎的8幅图

翻译人员: 铁锚翻译时间: 2013年10月29日世间总是一图胜过千万言!下面的8幅图来自于Program Creek 的 Java教程,目前这是该网站最受欢迎的文章.希望本文能帮你回顾你已经知道的那些知识。如果图片讲解的不够清晰,你可能需要阅读详细的文章或者进行搜索。下图显示了如下代码运行的过程:1String s ="abcd";2s = s.concat("ef");图1HashCode(...

weixin_39972519的博客 78

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java期末学习总结

一、课程回顾在本学期的Java编程语言学习过程中,我们从基础语法开始逐步深入到面向对象编程的概念,掌握了如何使用Java进行程序设计。通过一系列的理论讲解和实践练习,我对Java这门语言有了较为全面的认识,并且能够独立完成一些简单的项目开发。二、核心知识点1. 基础语法数据类型:理解了Java中的基本数据类型(如int, double, char等)以及引用类型(如String, Array等),并掌握了它们之间的区别。

2301_81823154的博客 834

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java 回顾 ( Revisiting Java )

而引用变量是一个到对象的引用,相当于一个遥控器,指向堆上的某个对象,通过此引用可以获得对象,重新赋值此引用并不改变对象,只是引用指到了另一个对象上而已。【继承方法调用时的最近原则】调用对象引用的方法时,会调用到与该对象类型最接近的方法,就是说如果子类实现了某继承的方法,那就调用子类的,如果没有实现,那就往上找最近的实现的类的方法。说说类和对象,类是对象的模板,类定义好“像我这样的人应该有什么状态,特征,能够做到那些事”,而对象具体化了类,真正获得了具体的状态,具体的特征,以及做某些事的方法。

wertyuytrewm的博客 337

java小知识

====================================================== 注:重要!程序员如何有效的放松身心!下班后做什么? ====================================================== 目录: q1.1 什么是java、java2、jdk?jdk后面的1.3、1.4版本号又是怎么回事? q1.2 什

142

javase基础

java基础知识点回顾 Java中的任何数据类型都可以使用System.out.pritln方法显示吗? 对基本数据类型而言,输出的往往是变量的值; 对于像数组这一类复杂的数据类型,输出的是其堆空间中存储位置的hashCode值 下面数组定义正确的有: A.String strs[] = { ‘a’ ‘b’ ‘c’}; B.String[] strs = {“a”, “b”, “c”}; C.String[] strs = new String{“a” ”b” ”c”}; D.String strs[] =

weixin_46646438的博客 730

day86(硅谷)

java核心经常漫长的啃食的过程,终于将这本书搞定了。但是,既然看,就想吃得透一点。技术书,第一次看,有很多的不知所云的感觉。看完视频j2se的视频再来看一次这个核心技术。看视频会容易被讲课的思想所带,但是看视频容易理解。为了不被他们对自己书的理解,来影响自己对概念的理解,先看书,再帮视频帮助理解。最后自己再去看书,便能够清楚点。     第二次看可能会收获更多,也许再看一次,能看到一些作者

u014619944的专栏 504

java脑图

qq_28656707的博客 203

Java核心知识点快速回顾指南

对于集合、IO等需要实际操作的章节,平台的一键部署功能特别实用,可以直接看到程序运行效果。我在复习多线程部分时,就是通过平台快速创建了多个并发示例,比单纯看文档理解深刻很多。快速生成可运行的示例项目。平台内置的智能编辑器能自动补全代码,实时预览功能让学习过程更加直观。特别适合用来验证各种语法特性和API用法,无需繁琐的环境配置就能获得运行结果。常用方法:length()、substring()、equals()注释分为单行(//)、多行(/this关键字指代当前对象。多态:同一接口不同实现。

QuartzLynx65的博客 808

JAVA基础回顾

本文回顾了Java基础语法和面向对象编程的核心知识点。在基础语法部分,介绍了JDK/JRE/JVM关系、变量类型及转换(包括自动和强制类型转换)、进制转换和数组使用。面向对象部分重点讲解了属性与局部变量的区别、方法重载与重写的规则、this和super关键字的使用场景,以及值传递机制。特别强调数据类型转换的注意事项、方法重写的具体规范,以及通过代码示例演示了构造器调用链和父子类属性/方法访问的方式。这些内容为Java开发者提供了全面的基础回顾和重要概念梳理。

qq_47155275的博客 1326

总结回顾Java基础知识:

static除了不能访问构造器,像内部类,代码快,方法,内部类,成员变量都可以修饰。static修饰的成员成为类成员,类成员属于整个类,不属于单个对象。规则:类成员不能访问实力成员,作用域,类成员作用于大于实例,随着整个类加载,很容易导致类成员加载完成,实例还未初始化引发大量错误。static修饰类叫静态内部类,只能存在于内部类,通过外部类名.调用,只能访问外部静态成员。一切接对象,不同于面向过程,将问题拆解成对象,通过对象交互关联完成任务,简单优雅,缩短项目开发时间,在此之上,有继承,多态,封装等特性。

panpanaa的博客 296

Java基础知识(核心)

Java基础知识(核心)

weixin_49133806的博客 1638

JavaSE总结(适合Java期末考试复习,JavaSE知识回顾)

JDK,DRE JAVA语音编程过程 标识符(命名规范) 关键字 数据类型 常量,变量 数据类型转换(自动类型转换,强制类型转换) 运算符 表达式,顺序,选择(if,if else else if/switch),循环(while(){}; do{}while();for for增强) 数组 类和对象(创建,使用,比较),final注意点,匿名对象,this关键字,super关键字 OOP编程(三大特性:封装,继承,多态) 异常机制 集合 线程 IO流 ......

孤夜的博客 1万+

java回顾总结。

javase回顾总结。

blue_STOME的博客 3873

Java系列(55)——基础知识回顾

第一阶段题库 基础知识部分: JDK是什么?JRE是什么? a) 答:JDK:java开发工具包。JRE:java运行时环境。 Jdk包括jre,jre由jvm和java核心类库构成。 什么是java的平台无关性? a) 答:Java源文件被编译成字节码的形式,无论在什么系统环境下,只要有java虚 拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是java的跨平 台性。 在一台电脑上...

魏宇轩 2028
上一篇: Spring Boot 集成 Mybatis 增删改查示例
下一篇: You must reset your password using ALTER USER statement before executing this statement.
fastlearn
博客等级 码龄10年 4粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值