异常的认识

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

目录

1.认识异常的种类

2.认识throws方法和try-catch-finally方法来处理【我主要以数组越界异常和空指针异常来举例】

3.异常的传递

4.自定义异常

5.几道面试题来自我检验

一.异常的种类

1.顶层父类:Throwable

2.两大核心分支:Error(错误)和 Exception(异常)【主要来介绍这两个】

3.Error:是JVM自身出现的严重故障,如果出现只能通过优化代码、调整JVM参数解决,程序无法正常恢复。

4.Exception:可以通过手动来处理,主要是通过throw方法和try-catch-finally方法来处理

并且Exception还可以分类为Exception(编译异常)和RuntimeException(运行异常),【Exception是被编译器统一认定为编译异常的】编译异常会在还没运行的时候有红色下划线表示错误,而运行异常会在运行后报红

二.两种处理方法

1.throws抛出【交给JVM】

要注意区分throws和throw,两个都可以用于给用户注释错误

(1).throws,throws写在方法后面

(2).throw,throw一般用在判断的语句,可以和throws一起用。

因为所有异常都属于类,在throw的时候要new一个异常,并且可以在执行的地方看到我们自己写的有错误的提示,因为RuntimeException(运行异常)类是Throwable这个类的子类(所有异常都是),Throwable里面有很多构造方法,其中有一个就是可以填入一个字符串,其他的方法可以自行查看

【throw因为用于判断语句,所以可以多应用与用户登录时候的账号密码啥的】

2.try-catch-finally【交给用户自己】

是一种可以自行解决异常的方法,并且后续代码可以正常运行

代码解释:1.try里面放异常的代码,在异常后的代码在运行时不会运行到,检测到有异常就直接跳过转到catch里面

2.catch的()里面写异常名称来捕获对应的异常,可以写多个异常,多个catch或者几个异常写在一起,e.printStackTrace用来检测错误发生的行数,并且catch里面的打印也可以被打印出来,可以写一些提示异常种类的话

3.finally应用于善后,处理资源关闭,防止浪费【finally里面的内容一定被执行】

4.try-catch-finally后,由于我们自己用这个方法处理的异常,所以异常后的代码可以正常运行

注意

1.如果有多个异常,只会显示一个异常

2.catch里面自己写的异常都和try里面出现的异常不匹配的话会将问题一直往上抛,抛到错误最开始的地方,如果还没有处理的话就会交给JVM

三.异常的传递

异常的处理可以这样写

(1)你可以使用方法调用,当你调用这个有异常的方法时候,先会检查你方法里面有没有写,然后再检查你调用的地方,如果你自己方法里面的异常没有找对,就会去找上层方法【调用的是上层】,在你调用的地方去找,会一层一层往上找,直到找到对的异常停止,如果还没找到就会给JVM

就像下面这个一样

(2)至于传递就是当你func1方法里面有异常,在你调用的时候也会出现异常

四.自定义异常

自定义异常往往出现在用户登录的时候,并且伴随着throw出现

当然也可以在里面加上try-catch-finally方法

五.题目自测

左:因为异常的处理会优先找到下层方法,当下层方法没有对应的处理才会给到上层方法,所以会优先执行method方法内部的catch,并输出方法内部捕捉异常,选择B

右:因为没有对应的try-catch-finally方法来处理,所以一直往上层找,还是没有,最终交给JVM来处理,所以选C

【异常】JAVA常见异常 受检异常需要在编译时处理,而非受检异常通常是在运行时抛出,并且不强制要求在编译时处理。这些异常在编译时必须要处理,通常需要使用 try-catch 块或在方法签名中声明。当应用程序试图通过字符串名称加载类时,如果在类路径中找不到对应的类,则抛出此异常。当方法在不适当的时刻被调用时抛出。当试图将字符串转换为数值类型时,如果字符串的格式不正确,则抛出此异常。通常在输入输出操作失败或中断时抛出,比如文件操作、网络通信等。这些异常在编译时不强制要求处理,通常在运行时抛出。当试图将对象强制转换为不兼容的类型时抛出。 阅读详情

相关推荐

OpenSpec 从入门到精通:AI 时代的最佳 SDD 范式

同样都是「先写规范再写代码」的开源 SDD 框架,OpenSpec(https://github.com/fission-ai/openspec) 展现出了极高的工程性价比,无论是使用 Claude Code、Cursor 还是 Aider,都可以无缝接入 OpenSpec 的规格管理层。这些问题需要人来做判断,AI 做不了这个主。整个流程跑下来,OpenSpec 产出的效果还是令人满意的,一些前期没有考虑到的细节 AI 都补上了,生成的相关文档也有利于开发人员的知识对齐,可以尝试在团队内部推广。

qq_39093474的博客 933

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

Java 异常解析前言 前言

YING—country的博客 3万+

STM32F103C8T6全桥逆变电路PWM波生成(基于HAL库)

全桥逆变电路需要两组开关管相互协同工作,故需要两路PWM控制信号,为了防止电源短路,需要保证同一桥臂的上下两个开关管不会同时导通,故两路PWM在相位上需要相差180°;为了保证高频变压器不会磁饱和,使正负半周PWM占空比相同。但是传统的互补输出达不到调节占空比调节输出电压的效果。......

weixin_45042735的博客 6025

异常-异常场景的测试

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

Queen_xzx的专栏 1万+

复现论文《Analysis of circulating current mechanism of Grid-forming offshore wind farm based on DRU-HVDC》

该论文研究了基于二极管整流单元(DRU)和低频交流(LFAC)输电的构网型(GFM)海上风电场并网系统中环流的产生机理。由于 DRU 不可控,系统电压与频率依赖于风力发电机(WT)的网侧变流器,当多台 WT 并联运行时,因输出电压幅值、相位、输出阻抗或频率不匹配,会产生基频环流,导致系统损耗增加与稳定性下降。论文通过理论建模与 MATLAB/Simulink 仿真,分析了四种不平衡工况下的环流机理,并指出幅值不平衡和阻抗不平衡引起无功环流,相位不平衡引起有功环流,频率不平衡则引起环流振荡,为后续环流抑制研究

huanghm88的专栏 105

【读代码】从claude skills到superpowers项目

最近claude skills成了大热门,今天一起看下GitHub 上的开源技能框架,他将“工作流”封装为“技能” (Skills)。本文尝试剖析该项目的技能粒度定义、多技能关联架构、应用逻辑等。与传统的 Function Calling 不同,Superpowers 中的 Skill 定义粒度并非“原子操作”,而是**“认知模式” (Cognitive Mode) 或“工作阶段”**。

kakaZhui的博客 1922

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

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

YKX0000的博客 2871

全球气候模式降尺度方法总结及其代码实现

简介总结各类型气候模式降尺度方法

WW、forever的博客 1万+

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

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

意愿三七 4万+

OpenClaw 源代码深度分析报告 &如何把企业自有的MCP server 工具集成到OpenClaw里? 怎样通过OpenAI 风格SDK 解析出来OpenClaw的全部的流式输出内容?

项目属性详情名称OpenClaw版本2026.3.2许可证MIT语言最低运行时包管理器pnpm主要仓库},// 注册工具// 工具实现},});// 注册命令" }),});},方面评价模块化设计⭐⭐⭐⭐⭐ 插件架构清晰,扩展性强协议设计⭐⭐⭐⭐⭐ WebSocket 协议完善,支持多种客户端多渠道支持⭐⭐⭐⭐⭐ 20+ 消息通道,覆盖主流平台安全机制⭐⭐⭐⭐ 配对认证、设备签名、权限控制完善本地优先⭐⭐⭐⭐⭐ 数据本地存储,用户完全控制项目属性详情名称OpenClaw版本。

AI天才研究院 941

微信小程序 - 实现客户支付订单连接小票打印机自动打印订单小票功能,微信小程序如何对接小票打印机自动打印小票,小程序收到新订单的时候可以联动商家打印出小票/单据/标签/发货单/电子面单等(详细教程)

微信小程序调用小票打印机,小程序接单后小票机自动打印订单,微信小程序云开发订单微信支付与小票和标签打印的完整高效流程,如何实现微信订单连接小票打印机并自动接单打印,微信小程序连接打印机打印单据小票打印,微信小程序云开发调用小票打印机实现方案,微信小程序怎么配置小票打印机,微信支付电子小票,外卖小程序实战-接单后小票机自动打印订单,微信小程序连接蓝牙打印小票,打印购物小票,调用小票打印机打印小票,微信订单如何连接小票打印机并实现自动接单打印,实现微信订单连接小票打印机并自动接单打印,微信小程序小票打印机打印教

🏆 前端领域优质创作者 1万+

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

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

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

AI大模型助力现金流精准预测案例详解

因为它的“注意力机制”能像“人一样思考”——比如,当预测“下周现金流”时,模型会重点关注“最近7天的销售数据”“未来7天的天气”“竞品是否有促销”这些关键因素,而忽略“去年同期的无关数据”。AI大模型不是“取代”财务人员,而是“赋能”他们——把财务人员从“重复的Excel操作”中解放出来,专注于“战略决策”(比如如何优化资金结构、如何提升资金利用率)。比如,“促销力度”这个特征,不是简单的“折扣率”,而是“折扣率×促销天数×覆盖SKU数量”,这样能更准确反映促销对现金流的影响。这些问题的核心,其实是。

AIGC应用创新大全的博客 1258

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

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

weixin_53755148的博客 1286

计算机控制技术及应用

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【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

老版QQ原生表情gif动态

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

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

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

qq_41969892的博客 3999

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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

Anonymous_GL的博客 5154

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

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

weixin_39609166的博客 2816

java异常——检查异常、非检查异常、运行时异常、非运行时异常

一、概要   Java把所有的非正常情况分为两种:异常(Exception) 和错误(Error),它们都继承Throwable父类。 Java的异常(Exception和Error)分为检查异常和非检查的异常 其中根据Exception异常进行分类,可分为运行时异常和非运行时异常 二、区别及相应异常 A-1:检查异常(编译时异常):   就是编译器要求你必须处理的异常。比如我们在编程某个文件的读于写时,编译器要求你必须要对某段代码try…catch… 或者 throws exception,这就

Atlas!的博客 1960

Java异常:认识异常、异常的作用、自定义异常

Error:代表的系统级别错误(属于严重问题)Exception:异常,代表的才是我们程序可能出现的问题,通常会用Exception以及它的子类来封装程序出现的问题运行时异常:RuntimeException及其子类,编译阶段不会出现错误提醒,运行时出现的异常(如:数组索引越界异常),通常因为编写的代码有问题导致编译时异常:编译阶段就会出现错误提醒的(如:日期解析异常),通常是Java官方对认为容易出问题的地方进行异常提醒,需要抛出异常或捕获异常,对异常进行处理。

FUYY'S BLOG 1007

Java 异常架构受检异常与非受检异常

Java 的异常处理机制是通过Throwable类及其子类实现的。ThrowableError:表示应用程序无法处理的严重错误,通常与 JVM 本身的状态相关,如内存溢出、栈溢出等。Error通常不应由应用程序捕获或处理。Exception:表示应用程序可以处理的异常情况,包括由程序错误或外部条件引发的问题。Exception又分为两类:受检异常和非受检异常。在Exception类中,受检异常和非受检异常的区别主要体现在编译时的检查和运行时的处理上。受检异常是指那些必须在编译时显式处理的异常。

Flying_Fish_roe的博客 1762

章八、异常 —— 概述、常见异常、异常处理、运行期异常和编译器异常

一、Java 异常概述一、Java 异常概述在使用计算机语言进行项目开发的过程中,即使程序员把代码写得,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。●指的是程序在,出现的非正常情况,。异常指的并不是语法错误。语法错了,编译不通过,不会产生字节码文件,根本不能运行。●Java中是如何表示不同的异常情况,又是如何让程序员得知,并处理异常的呢?

king_faner的博客 1251

1.异常简介:什么是异常???常见异常有哪些???

跟汤老师学Java笔记:异常简介 完成:第一遍 1. 什么是异常? 程序在运行过程中发生的意外情况,称为异常,如:除数为0、访问下标不存在的数组元素等 异常是一种信号,用于向调用者传递信息,表示程序发生了意外情况 程序运行时一旦出现了异常,将会导致程序立即终止,异常之后的代码将无法继续执行,所以需要对异常进行处理。 2. 常见异常有哪些? ArithmeticException -----算术异常 ----- 除数为0 ArrayIndexOutOfBoundsException -----数组下标越界异

ADbyCool的博客 5299

springmvc项目异常处理方案,业务异常,系统异常,其他异常

在具体业务中,实现业务异常、系统异常和其他异常的处理方法是确保应用程序健壮性和用户体验的关键环节。通常,业务异常指的是因业务规则不满足而产生的异常,例如用户输入数据不符合要求。系统异常通常指程序运行错误,如数据库连接失败。其他异常可能包括网络问题或第三方服务不可用等。 处理这些异常时,应遵循以下原则 1. 区分异常类型:为不同类型的异常定义不同的异常类,继承自Java的`Exception`类或其子类。2. 封装异常信息:确保异常对象包含足够的信息,以便于调试和记录日志,同时避免泄露敏感信息。

weixin_64537269的博客 929

java catch抛出异常_java异常——捕获异常+再次抛出异常与异常链

【0】README0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java异常——捕获异常+再次抛出异常与异常链 的相关知识;【1】捕获异常相关1.1)如果某个异常发生的时候没有再任何地方进行捕获, 那程序就会运行终止: 并在控制台上打印出异常信息 , 其中包括异常的类型堆栈的内容;1.2)要想捕获一个异常, 必须设置 try/catch 语句块:1.2.1...

weixin_39965161的博客 4974
下一篇: Java项目里常见的模式
忙着追剧的村长
博客等级 码龄1年 586粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值