学习笔记1(java异常)

Java学习笔记3.10.1异常处理 - 异常类型 1. 理解什么是异常; 2. 熟悉异常的类型 阅读详情

1. 异常的概念

Java中的异常是指Java程序在运行时可能出现的错误或非正常情况

2. 异常体系图

Throwable是所有异常类的父类,它有两个直接子类(1)Error类,错误类:java虚拟机无法解决的严重问题,如:jvm系统内部错误、资源耗尽等;(2)Exception类,异常类:表示程序本身可以处理的错误。Exception包含的子类如:RuntimeException运行时异常,编译时异常。

2.1 编译时异常

除了RuntimeException类以外,其他子类都是编译异常,java编译器会对编译时异常进行检查。出现这种异常必须处理,否则程序无法通过编译。(javac.exe)

2.2 运行时异常

RuntimeException类及其子类都是运行时类,运行时异常在程序运行时由java虚拟机自动进行捕获处理。

3. 常见异常

3.1 运行时异常

(1)ArithmeticException:算术异常,如10/0;

(2)ArrayIndexOutOfBoundsException:索引越界,如:若args初始长度为0,args.length==3;

(3)ClassCastException:类型转换异常,

如: Object object=args[2];//此时ok 向上转型 String->Object
 Integer i=(Integer) object;//异常 Object->Integer
 String j=(String)object;//ok  向下转型 Object->String

(4)NullPointerException:空指针异常,如:Student.name(此时Student=null,相当于null.name)

(5) NumberFormatException :数字格式化异常

3.2 编译时异常

FileNotFoundException、 ClassNotFoundException等,(读取不存在文件、网络连接中断、数据库。。。。。)

4. 异常处理

1. try-catch-finally:捕获异常,自行处理

注:当异常被catch捕获处理后,程序会继续执行catch块之后的代码

若:catch块中抛出新的未捕获的异常  或  return语句导致方法提前返回

则catch语句块之后的代码块不会被执行

细节如下:

(1)    

try{
            //可能有异常的代码
        }catch {
            //捕获到的异常
            //1.当异常发生时
            //2.系统将异常封装成Exception对象e,传递给catch
            //3.得到异常对象之后,程序员自行处理  (也可做业务处理)
            //4.若无异常,catch不处理
        }finally {
            //无论是否有异常,finally都执行(资源关闭)
        }

(2) try必需,try-finally没有捕获异常,程序崩掉,退出

可以有多个catch,子类异常在前,父类异常在后

2. throws:抛出异常,交给调用者处理,最顶级处理者jvm

运行时,若没有显示处理异常,默认throws,最终抛给jvm,jvm打出异常,程序终止。

语法:

修饰符 返回值类型 方法名(参数1,参数2.....) throws 异常1,异常2......{

                             方法体

}

注:

子类重写父类方法时:子类所抛出的异常类型等于父类抛出异常类型,或者是父类异常类型的子类,如:父RuntimeException,子NullPointException

5. 自定义异常

(1)定义类

(2)继承异常类Exception或其子类

(3)自定义异常类使用super()语句调用Exception构造方法

注:

一般情况下,自定义异常类继承RuntimeException(运行时异常),因为可以使用默认处理机制(jvm),比较方便。

6.throw

在java程序中,除了使用throws关键字,还可以使用throw关键字抛出异常。

throw关键字用于方法体内,抛出一个异常对象,并且每次只能抛出一个异常对象。

语法:

throw ExceptionInstance;

7. throw和throws的对比

关键字意义位置后面跟的东西
throws异常处理的一种方式方法声明处异常类型
throw手动生成异常对象的关键字方法体中异常对象(且每次只能抛出一个异常实例)

public class Cal {
    public static void main(String[] args) throws NumberFormatException,ArrayIndexOutOfBoundsException,ArithmeticException{
        try {
            //长度不对
            if(args.length!=2){
                throw new ArrayIndexOutOfBoundsException("参数个数不对");
            }
            //是否是整形
            int n1=Integer.parseInt(args[0]);
            int n2=Integer.parseInt(args[1]);

            double res=de(n1,n2);
            System.out.println("结果是:"+res);
        } catch (ArrayIndexOutOfBoundsException e) {
//            throw new RuntimeException(e);
            System.out.println(e.getMessage());
        }catch (NumberFormatException e){
            System.out.println("参数格式不正确,需要输出整数");
        }catch (ArithmeticException e){
            System.out.println("出现除数为0的异常");
        }

    }
    public static int de(int n1,int n2){
      return n1/n2;
    }

}

从零到一:OptimizePI Pre-layout PDN前仿真实战指南 本文详细介绍了如何使用OptimizePI进行电源完整性(PDN)前仿真,从软件安装配置到元器件建模、去耦电容配置及仿真参数设置,提供了实战技巧和常见问题排查指南。通过OptimizePI的Pre-layout仿真,工程师可以在PCB布局前优化电源分配网络,显著提升设计效率并降低成本。 阅读详情

相关推荐

Isaac Sim 使用经验(配置要求,云服务器)

Google Colab及AutoDL都是在docker内运行,其中google colab并不支持docker指令,而依照AutoDL的相关文档,AutoDL并不直接提供docker指令。2. Google Colab/AutoDL 不支持图形化界面,图形渲染等任务,所以没有办法使用Omniverse Streaming进行直播,从而更好的对结果进行展示。对于第一点,或许存在直接手动复现镜像的可能,但是考虑到Isaac Sim/Isaac Lab由于比较新,可能不够稳定,因此还是按照官方文档进行部署。

weixin_44211433的博客 4591

Java异常处理基础知识学习笔记

写在前面:马上秋招,打算从0开始再学一遍Java,开个知识点记录贴,就当做课堂笔记吧. 希望秋招顺利.

TIANJIAWEN的博客 313

VASP计算层错能(SFE)全攻略2

本文介绍了使用VASP计算纯镍(Ni)层错能(SFE)的具体步骤。首先构建Ni的FCC单胞并扩展为超胞,通过修改原子位置引入堆垛层错;随后分别计算完美晶体和含层错结构的能量;最后通过能量差与层错面积之比求得SFE值。计算需注意k点网格、截断能和超胞尺寸的收敛性测试,并推荐使用PAW赝势和ASE等工具辅助结构构建。

weixin_50519490的博客 1992

Java学习笔记 --- 异常

Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)

乌云的博客 554

Flink SQL数据血缘实战:如何用Calcite追踪字段级数据流向(附源码示例)

本文深入探讨了如何利用Apache Calcite解析Flink SQL执行计划,实现字段级数据血缘的追踪。通过扩展Calcite的元数据处理器,特别是针对Flink特有的Snapshot等节点,文章提供了从获取优化后的逻辑计划到提取并可视化血缘关系的完整实战方案,并附有核心源码示例,帮助开发者构建实时数仓的数据治理能力。

weixin_29032337的博客 143

Jetson平台XDMA PCIe驱动安装与测试全指南

本文提供了一份在NVIDIA Jetson平台上安装与测试Xilinx FPGA XDMA PCIe驱动的完整指南。详细阐述了驱动作为高速DMA引擎的核心作用,并逐步讲解了从环境准备、驱动编译、内核模块加载到实际数据传输测试的全过程。内容涵盖常见问题排查与性能优化建议,帮助开发者实现Jetson与FPGA间的高速数据通信,适用于自动驾驶、工业视觉等需要异构计算的应用场景。

weixin_29196315的博客 528

java异常学习笔记

#java异常学习笔记 (java核心技术卷I) 对于异常,我们首先要知道所有的异常都派生于Throwable类,而Throwable类在下层又分解为Error和Exception两个分支。 Error类层次描述了Java运行时系统的内部错误和资源消耗错误, 例如,Java虚拟机运行错误(VirtualMachineError),这种错误一般与程序的编写无关,只能妥善地终止程序以及通知用户外,你基本无能为力。 Exception层次分解为两个分支,一个分支派生于RuntimeException,另一个分支包

weixin_44801940的博客 239

PySWMM新手避坑指南:从安装到批量处理INP文件的完整流程(附常见错误解决方案)

本文为PySWMM新手提供从环境搭建到批量处理INP文件的完整避坑指南。详细讲解了虚拟环境配置、库安装方法,并针对“无法打开输入文件”和对象访问错误等高频问题提供解决方案。核心部分展示了如何利用Python脚本实现INP文件的批量运行、结果汇总以及参数自动化修改,显著提升SWMM模型的工作效率。

weixin_29092031的博客 393

Java学习笔记-异常及处理

异常概述 异常的概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类, 产生异常就是创建异常对象并抛出了一个异常对象。Java处 理异常的方式是中断处理。 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行. 用户输入了无效数据。 找不到需要打开

Aboil的博客 397

【win11 cuda12.0安装tensorflow-gpu】

win11 cuda 12.0 安装 tensorflow-gpu

weixin_36299320的博客 3012

Python模拟发送SOME/IP消息(Scapy模块)

SOMEIP提供服务、订阅、响应、通知等Python代码示例

liluo0815481的博客 3071

java学习笔记16--异常

异常 异常时导致程序中断运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失, 所以在程序的设计中必须要考虑各种异常的发生,并正确的做好相应的处理,这样才能保证程序正常的执行。 异常类的继承结构 在整个java的异常结构中,实际上有以下两个最常用的类:Exception、Error,这两个类全都是Throwable的子类 Exception:一般表...

Golden的专栏 215

第244篇 视觉SLAM后端之BA优化——Bundle Adjustment的原理

本文介绍了SLAM后端优化中的Bundle Adjustment(BA)技术。BA通过同时优化相机位姿和3D路标点位置,最小化重投影误差,解决前端估计的累积误差问题。文章详细讲解了BA的数学原理,包括目标函数构建、Gauss-Newton法和Levenberg-Marquardt法求解过程,以及利用稀疏性和Schur补加速计算的关键技术。对比了全量BA和增量BA的优缺点,并介绍了Ceres、g2o等工程实现工具。BA作为SLAM后端的核心算法,其理解深度直接影响系统性能优化能力。

郑伟强dev的专栏 353

java学习笔记1——异常的处理

1.异常的处理: Java异常处理的五个关键字:try、catch、finally、throw、throws Throw关键字: 作用: 可以使用throw关键字在指定的方法中抛出指定的异常 使用格式: throw new xxxException(“异常产生的原因”) 注意事项: 1、throw关键字必须写在方法的内部 2、throw关键字后边new的对象必须是Exception或者是Exce...

weixin_44388890的博客 453

ssm框架搭建

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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java基础学习笔记1——异常处理

异常简介 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者JVM内存溢出。 这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。 异常的类型有三种: **检查性异常:**最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单

Willow的博客 188

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【大数据】学习笔记 1 Java SE 第8章 异常 8.1 异常概述

【大数据】学习笔记 1 Java SE 第8章 异常 8.1 异常概述

代码改变世界 211

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

异常学习笔记ExceptionDemo1.java

/* 异常:就是程序在运行时出现不正常情况。 异常由来:问题也是现实生活中的一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象。     其实就是java对不正常情况进行描述后的对象体现。 对于问题的划分:两种:一种是严重的问题,一种非严重的问题 对于严重的,java通过Error类进行描述。      对于Error一般不编写针对性的代码对其进行处理 对于非严重的,

kingy460的专栏 360

java学习笔记(1):异常

Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。 两个子类的实例,Error 和 Exception,通常用于指示发生了异常情况。  通常,这些实例是在异常情况的上下文中新近创建的,因此包含了相关的

我的编程世界 595

【大数据】学习笔记 1 Java SE 第8章 异常 8.2 异常的处理

【大数据】学习笔记 1 Java SE 第8章 异常 8.2 异常的处理

代码改变世界 303

Java学习笔记之异常处理(1)

在开发程序过程中,异常是大家都遇到过的一种状况,异常和bug还有一些区别,bug通过是指程序逻辑上的错误,导致运行结果和预期不一致,而异常则不是,它的存在可能导致程序的崩溃,因此我们非常有必要处理好它。 1、异常基本情况 public class ExceptionDemo { public static void main(String[] args) { System....

zuolixiangfisher的博客 240

黑马程序员 java学习笔记 Day1:异常

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 异常: 是什么?是对问题的描述,将问题进行对象的封装。 异常体系: Throwable |——Error |——Exception |——RuntimeException 异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。 也就是说,

roking2leer的专栏 583

Java核心技术学习笔记——入门——第九章 Java 异常和异常处理——9.1 Java 异常分类

1. 异常概述 2. 异常分类 示例: 以下代码中包含了除零错误,但是编译器未报错,运行时,将发生运行时错误。 package miscellaneous; public class ZeroDivisionTest { public static void main(String[] args){ System.out.print(2020/0); } } 运行结果: Exception in thread "main" java.la.

预见未来to50的专栏 219

【大数据】学习笔记 1 Java SE 第8章 异常 8.3 自定义异常

【大数据】学习笔记 1 Java SE 第8章 异常 8.3 自定义异常

代码改变世界 293

1.13(java学习笔记)异常机制

异常不同于错误,它是程序运行时产生的未知问题。 如果把程序比喻成一辆汽车,那么汽车开着开着突然前面出现了一个大石头挡住了路,这就叫异常。 那么出现了这个异常我们需要去处理,比如打电话给公路管理局,让它们搬走石头。 如果是汽车的发动机坏了,这叫错误。 即使程序本身没有问题,也会因为各种因素产生异常。 java秉承面向对象的思想,将异常也以类和对象的形式存在。 一、异常类的结构...

weixin_34417635的博客 96

Java基础—异常处理总结(转)(JAVA学习笔记1)

原始链接:http://dev.yesky.com/61/8111561.shtml  异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦!   Java语言在设计的当初就考虑到这些问题,提出异...

知识中转站 93

JAVA学习笔记25——异常机制1:Exception简介+异常处理的try_catch_finally方法

最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。 本篇和下一篇来介绍一下JAVA的异常机制,异常是程序执行的一种例外,Java异常是Java提供的用于处理程序中错误的一种机制。Java里错误也是用对象来包装起来。(注:Error类不需要编程者处理,也是编程者解决不了的。) 下面是异常的实例代码:

向计算机殿堂奔跑的跑道 820
下一篇: 软件测试(极速版面试关键点)
白驼山好汉第308号
博客等级 码龄5年 43粉丝 8原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值