异常是什么

头歌 11-4 异常处理的应用 程序在运行过程中产生的不正常情况。程序在运行的时候,发生了一些不被预期的事件,从而没有按照我们编写的代码执行,这就是异常。异常是Java中的错误,但是并不是所有的错误都是异常,比如说,你在定义变量名的时候没有依照Java的规则,在语句的结尾少了一个分号,那么运行出来结果是提示是错误;不过如果你用,那这个时候你的程序是可以正常编译的,但是在运行的时候,因为你用0做了除数,会抛出的异常。异常的原因有很多种,比如:1.输入了错误的数据,比如:程序需要的是int类型数据,而用户输入了一串字符串; 阅读详情

目录

异常

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述




错误Error: 错误不是异常 而是脱离程序员控制的问题 错误在代码中通常被忽略 例如:当栈溢出时,一个错误就发生了 它们在编译也检查不到




异常体系结构

重点图片

在这里插入图片描述

Error

在这里插入图片描述

Exception

在这里插入图片描述

在这里插入图片描述

练习一




try监控区域
catch 捕获异常
finally 处理善后工作
catch(想要捕获的异常类型! 变量e) 捕获异常




//catch (Throwable e)
//catch (ArithmeticException e)




finally区域可以不要
但是假设后面学习IO流 或者资源 可以放在finally里面进行关闭



在这里插入图片描述

练习二

//重点 假设要捕获多个异常的时候 要从小到大
// (Throwable>(Error=Exception)) 否则的话会编译报错
//比如 先运行Throwable异常再运行Error异常会出现编译报错


在这里插入图片描述

练习三

重点
//学习快捷键 ctrl Alt + T 自动编写捕获异常代码
//如果按完快捷键后没有反应 原因是与qq热键相冲突




e.printStackTrace();//打印错误的栈信息


在这里插入图片描述

练习四

//但是如果捕获到异常后 还想让代码继续运行
//那么就用try-catch 来进行编写
try {
new Test();
}catch (ArithmeticException e){
e.printStackTrace();
}finally {
System.out.println(“finally”);
}




重点:注意throws抛出异常和throw抛出异常的区别如下




// throws 在方法上抛出异常
// (假设这方法中 处理不了这个异常 那么就在方法上抛出异常)
public void test(int a,int b) throws ArithmeticException{}



public void test(int a,int b){
if (b==0){
//throw 在方法体内抛出异常
throw new ArithmeticException(); //主动抛出异常
}
}



在这里插入图片描述

应用程序开发——异常(异常分类、常见异常、异常处理、自定义异常) 异常分类:(Throwable:所有异常和错误的父类)●  Error:JVM无法解决的严重问题(JVM系统内部错误、资源耗尽等。一般不编写针对性的代码进行处理)●  Exception:编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理-----------------------------------------------------------------------... 阅读详情

相关推荐

异常检测中的三种异常:点异常、上下文异常、集合异常

文章目录直观解释点异常上下文异常集合异常Reference 直观解释 异常检测问题遇到的异常可以分为三类,分别是点异常(Point Anomalies)、上下文异常(Contextual Anomalies)和集合异常(Collective Anomalies)。 一图胜千言,下面分别用一张图说明这些异常。 点异常 示意图如下,其中o1o_1o1​、o2o_2o2​属于点异常 上下文异常 示意图如下,其中t2t_2t2​处属于上下文异常 集合异常 示意图如下,箭头所指的红框区域属于集合异常 Refer

千行百行的博客 6684

第六讲 Java面向对象-Java中的异常 (头歌答案)

第六讲 内部类 异常处理 第1关:Java 中的异常处理机制 第2关:捕获异常 源码 第3关:抛出异常 源码: 第4关:自定义异常 源码

Molly 的博客 1万+

从零到一:AnythingLLM与Ollama的本地知识库搭建实战

本文详细介绍了如何使用AnythingLLM与Ollama从零开始搭建本地知识库,涵盖技术选型、环境部署、系统配置及优化策略。通过RAG技术架构,实现安全高效的文档管理与智能问答,特别适合企业及个人构建私有化知识管理系统。

weixin_29079643的博客 567

Java中异常处理机制

Java异常处理异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(1/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。异常发生的原因有很多,通常包含以下几大类:用户输入了非法数据

jav_zhangwei的博客 392

半导体AMHS天车振动控制:从0.5G到超低振动的技术演进与工程实战

在先进晶圆厂中,自动化物料搬运系统(AMHS)的天车如同空中出租车,承担着晶圆盒(FOUP)在洁净室各工艺区间的转运任务。然而,当天车加减速、过弯或抓取时产生的机械振动通过轨道梁和建筑结构传递至光刻机等敏感设备,便可能直接威胁套刻精度与良率。传统被动减振方案依靠橡胶垫和弹簧,在0.5G指标时代曾行之有效,但在EUV光刻和先进制程面前已力不从心。主动振动控制技术通过传感器、控制器与作动器构成的闭环系统,在轨道吊点和机械手端实时输出反向力抵消振动,配合磁悬浮走行、轻量化结构及调度系统的路径优化,将振动从0.5G

weixin_29188043的博客 345

Trae CN 使用入门指南

【代码】Trae CN 使用入门指南。

weixin_42551921的博客 8776

Java中的异常总结详解(异常类型、声明异常、抛出异常、捕获异常)

Java 异常解析前言 前言

YING—country的博客 3万+

CTF逆向-[GWCTF 2019]babyvm-WP-虚机模拟流程反向编码和z3约束求解器解方程工具的使用

CTF逆向-[GWCTF 2019]babyvm-WP-虚机模拟流程反向编码和z3约束求解器解方程工具的使用 来源:https://buuoj.cn/ 内容: 附件:https://pan.baidu.com/s/1FKkXN6JDI0QkGw-UE2crNA?pwd=grb0 提取码:grb0 答案:Y0u_hav3_r3v3rs3_1t! 总体思路 发现是虚机模拟 形成每个指令的逆向 找到加密值位置(有可能不止一个位置,该题就给了一个误导的) 找到命令执行的流程(也是不止一个) 逆向编写反向加密得到f

serfend's blog 980

异常-异常场景的测试

在功能测试中,测试人员主要关注的是功能是否能符合预期的正常运行,比如测试一个下单的流程,关注下单、购买、发货流程是否能一气呵成。但仅仅关注正常流程是不够的,在实际的使用场景下,会出现各种非正常的情况: 一些具体的需求需要通过业务特性挖掘: 如果是秒杀这样的高并发业务场景,那么需要考虑降级、并发。 依赖消息通知的业务,需要关注NSQ推送和消费相关的异常。 使用缓存的业务,需要关注缓存访问失败的情况,以及异常情况下数据一致性。 如果业务流程很重要必须要保证成功,那么需要关注是否有降级、容错、重试

Queen_xzx的专栏 1万+

Duplicate Cleaner Pro 5.16 保姆级教程:如何用哈希值精准清理重复文件(附音频/视频模式详解)

本文详细介绍了Duplicate Cleaner Pro 5.16如何利用哈希值技术精准清理重复文件,特别针对音频、视频和图片等多媒体文件提供了专业解决方案。通过哈希算法比对和多媒体特征识别,帮助用户高效管理存储空间,提升文件整理效率。

weixin_27032989的博客 570

Inception-Resnet-v1、Inception-Resnet-v2学习笔记(附Pytorch代码)_inception-resnet-v1 代码

Reduction-B模块:输入8*8*1792,输出8*8*1792.IR-B模块*10:输入17*17*896,输出17*17*896.IR-A模块*5:输入35*35*256,输出35*35*256.IR-A模块*5:输入35*35*384,输出35*35*256.IR-B模块*10:输入17*17*896,输出8*8*1792.IR-C模块*5:输入8*8*1792,输出8*8*1792.IR-C模块*5:输入8*8*1792,输出8*8*1792.

2401_89285791的博客 471

java异常 — — 异常的处理

二、异常的处理 Java异常处理的五个关键字: try、catch、finally、throw、throws 2.1、抛出异常throw 在编写程序时,我们必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接受参数。那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不台法,就应该告诉调用者,传递合法的数据进来。这时需要使用抛出异常的方式来告诉调用者。 在java中,提供了一个throw关键字,它用来抛出一个指定的异常对象。 抛出异常后: ① 创建一个异常对象。封装一些提示

mocoll的博客 1万+

18、动态系统响应分析

本文系统地介绍了动态系统响应的分析方法,涵盖传递函数建模、特殊输入下的响应特性(如脉冲和阶跃响应)、终值与初值定理的应用、系统直流增益的计算,并深入探讨了一阶和二阶系统的时域特性。通过实例分析与MATLAB仿真,展示了不同参数对系统行为的影响。文章还总结了系统响应在控制设计与故障诊断中的实际应用,并展望了多变量、非线性及实时响应分析的未来研究方向。配合流程图,提供了清晰的系统分析与设计路径。

kite3的博客 144

浅谈Java异常及其编译时异常和运行时异常的区别

异常是程序编码和运行时经常发生的事件,了解异常有助于我们提高代码质量,增强系统的健壮性,这里总结一下载Java编程中,编译时异常和运行异常时的区别,并列举几种常见的异常,以供参考学习。

Feify博客 1万+

XCP实战系列介绍07-使用ASAP2 Editor生成A2l文件详解

介绍通过ASAP2 Editor工具生成A2l文件步骤详解

initiallizer的博客 7299

SAP B1中文培訓教材_SDK

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

抛出异常和捕获异常的区别

抛出异常:如果程序中出现了异常,没有办法将具体的异常打印出来,不做任何处理 捕获异常:如果程序出现了异常,就能够详细的打印是什么原因导致了异常并且能够做出相应的处理,能够显示详细的Log 如果异常出现的话,会立刻终止程序,所以我们得处理异常: 1. 该方法不处理,而是声明抛出,由该方法的调用者来处理(throws)。 2. 在方法中使用try-catch的语句块来处理异常。 ...

qq_29090169的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【JAVA |异常】异常总结详解(异常类型、声明异常、抛出异常、捕获异常)

在 Java 中,异常处理是一种重要的编程概念,用于处理程序执行过程中可能出现的错误或异常情况。异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。

YKX0000的博客 2873

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Java】❤️认识异常、异常的基本使用、认识异常(异常详解)❤️

目录一、 异常的背景异常体系:**防御式编程:**异常的好处二、异常的基本用法**基本语法****关于异常的处理方式**抛出异常 一、 异常的背景 初识异常 我们曾经的代码中已经接触了一些 “异常” 了. 例如 除以 0 public static void main(String[] args) { System.out.println(10 / 0); } 算术异常: 数组下标越界 数组越界 int[] arr = {1, 2, 3}; System.out.println(

意愿三七 4万+

ioexception属于什么异常_Java异常

异常介绍程序运行时,发生不被期望的事情,它阻止了程序 按照程序员的预期正常执行,这就是异常。异常发生时,是任其自生自灭,立即退出终止,还是输出错误给用户?用函数返回值作为执行状态?。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定异常处理逻辑,针对性的异常处理,让程序尽最大可能的恢复正常并继续执行,且保持代码的清晰。Java中的异常可以是函数中的...

weixin_39861624的博客 8638

oracle异常、异常捕捉以及异常处理

异常以及处理异常1、概念2、预定义异常1、两数相除,分母为0,捕捉并抛出异常2、值转换异常3、根据姓名查找员工的职位,可能会出现的异常有:没有个这员工,或者有两个或更多的人叫同样的名字。3、非预定义异常4、自定义异常5、课堂练习: 1、概念 异常是指PL/SQL程序在执行时出现的错误 在PL/SQL中的一个警告或错误的情形都被称为异常。提示:编译错误(主要指语法错误)不包含在内。 异常处理通常写在执行体的最下面,在所有执行语句之后以exception关键字开始异常处理 语法: Exception when

hey,欢迎浏览我的博客,希望能给你提供帮助。 8302

JAVA基础:异常与异常对象,抛出异常,自定义异常,异常处理,受检与非受检异常

我们可以自定义异常,来描述出现的问题自定义异常类 , 继承异常相关的父类(Throwable,Exception , Error)一般异常的名字就体现了错误的情况,可以在配合注释进一步说明/**当年龄小于0或大于150时,抛出这样的异常*/2.通过有参构造方法,为异常提供更为详细的描述信息(可选)super(msg);3.使用throw 抛出异常。

weixin_53755148的博客 1286

【java】认识异常,理解异常,掌握异常

文章目录 1️⃣异常的背景 1.认识异常 2.避免异常的两种方式 2️⃣异常的基本用法 1.基本语法 2.多个 catch 块 3.使用共同父类 Exception 捕获异常 4.关于异常的错误输出 5.关于异常的调用链 6.关于 finally 代码块 7.使用 try 回收资源 8.一组关键字:throw 和 throws 9.异常处理流程总结 3️⃣异常体系结构 受查异常 4️⃣自定义异常类

Welcome to my blog. 1071

什么是异常?如何处理异常?

到底神马是异常?如何处理异常? 异常的概念 异常的体系结构 Java 异常的处理机制 异常处理的基本语法 异常链 自定义异常 总结 异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。 异常发生的原因有很多,通常包含以

Anonymous_GL的博客 5156

声明异常,抛出异常,异常的简单总结

声明异常声明异常自定义异常若是有多种类型的异常匹配,则异常匹配的顺序总结: 如果在一个方法体中抛出了异常,如何通知调用者? 声明异常 方法有两种: 方法1:调用者处理异常:通常在方法后面加throws Exception 方法2:调用者继续声明异常(下一个接收的人在处理) public static void main(String[] args) throws Exception { //...

qq_41969892的博客 3999

【C++】C++中异常及异常的使用

实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了public:, _id(id){}protected:int _id;

zxctsclrjjjcph的博客 1386

受检异常 非受检异常_受检异常和非受检异常

java提供了三种异常类型,受检异常(checked exception)、运行时异常(runtime exception)、错误(error)。通常情况下,对于可恢复的情况,使用受检异常;如果不清楚是否可能恢复,则最好使用未受检异常。1.受检异常如果抛出的异常是可恢复的,同时我们也期望API的调用者捕获异常进行恢复处理,那么我们应该使用受检异常。受检异常会强迫API的使用者截获异常并恢复处理,或...

weixin_39609166的博客 2816
上一篇: 内部类详解
下一篇: 自定义异常
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值