异常

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

一、概述

了解

1.自定义异常

2.异常链的概念及其作用

理解

1.异常基本概念

2.异常处理

3.抛出异常和声明抛出异常

运用

在程序开发中正确的进行异常处理

二、异常

1、什么是异常?

不能再你控制范围内的因素所造成的问题、没有预料到的情况就叫做异常。

它有两个特点:

² 造成不能正常执行任务的因素不在我的控制范围;

² 我自己没有足够的信息进行处理,只能抛出。

1.1、所有异常必须处理!在程序里可以抛出异常,但是决不能把异常抛给最终用户,BUG在程序员手里还不是BUG,但是一旦交付,那么就是BUG。

1.2、如果是自定义异常,那么一定要加异常信息;如果是checked异常转runtime则一定要保存原有的异常,形成异常栈。

1.3、如果需要对不同的异常进行不同的处理,那么就需要自定义异常,自定义异常需要有自己的继承体系,这样当我不想单个处理时,可以对一种类型的异常采用统一的一种处理。

错误有时候是可以避免的。

1、异常处理

在编程过程中,首先应当尽可能去避免错误和异常发生,对于不可避免、不可预测的情况则在考虑异常发生时如何处理。

2.1、用if-else来判断,但是不可取


2.2、异常在java跟其他对象一样,被封装成了各种类型,且有继承关系。

异常是针对方法来说的,抛出、声明抛出、捕获和处理异常都是在方法中进行的。

Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理,还有一部分系统生成的异常在java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。


Catch语句可以有多个,用来匹配多个异常,匹配上多个中的一个后,执行catch语句块的时候仅仅执行匹配上的异常。


运行时异常——RuntimeException

可以不进行处理或捕获

已检查异常——Checked Exception

必须进行处理或捕获


Throwable

Throwable类是Java语言中所有错误或异常的超类,只有当对象是此类(或其子类之一)的实例时,才能通过java虚拟机或者java throw语句抛出。类似地,只有此类或其子类之一才可以是catch子句中的参数类型。

Exception

Exception类及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件,表示程序本身可以处理的异常。

Error

是Throwable的子类,表示仅靠程序本身无法恢复的严重错误,用于指示合理的应用程序不应该试图捕获的严重问题。

RuntimeException

是那些可能在java虚拟机正常运行期间抛出的异常的超类。该异常可以通过改进代码实现来避免。

ThreadDeath

调用Thread类中带有零参数的stop方法时,受害线程将抛出一个ThreadDeath实例。

3、常见异常类型

ArithmeticException

算术运算异常

ArrayIndexOutOfBoundsException

数组越界异常

NullPointerException

空指针异常

ClassNotFoundException

NumberFormatException

数字转化异常

InputMismatchException

类型不匹配异常

4、处理异两种处理办法)

4.1、在方法中用try...catch语句捕获并处理异常,catch语句可以有多个,用来匹配多个异常。


4.2、对于 处理不了的异常或者要转型的异常,在方法的声明处通过throws语句抛出异常。

如果异常是我们自己能处理的话,那么我们还是最好不要用这种方法,直接用try-catch捕获就行。

5、自定义异常

创建Throwable、Exception或者RuntimeException的子类即可得到一个自定义的异常类。例:



6、异常链,异常栈信息




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

相关推荐

开源分享:苹果群控手机源代码解析与实战

本文介绍了苹果设备群控的基本原理和实现方法,重点解析了基于Python+Appium的群控系统构建。主要内容包括:1)设备连接管理技术(USB/Wi-Fi);2)自动化控制方式(WDA/AppleScript/Appium);3)实战演示了通过Python脚本实现多设备同时控制,涵盖环境配置、代码解析和功能说明;4)提出了多线程、图像识别等优化方向。文章为开发者提供了快速上手的群控方案,适用于自动化测试、批量管理等场景,并推荐了相关开源项目参考。

2403_88540309的博客 1344

一篇文章让你读懂Java异常栈信息

一. 基本的异常打印 public class Test { public static void main(String[] args) { fun1();//第4行 } public static void fun1() { fun2();//第8行 } public static void fun2() { ...

听得到微笑的博客 5858

信捷CODESYS平台伺服电机转矩控制模式应用与切换

信捷CODESYS二次开发软件:XS Studio 在运动控制中的转矩控制案例

weixin_64614866的博客 1万+

java异常栈_简单看java异常栈

(stack trace)异常栈轨迹是指:当 throw Throwable 时, Throwable对象抛出过程(穿梭)所经历的多个方法调用层(方法调用栈)。越接近 throw 语句的方法先进入异常栈。(Throwable Causal Chain)异常原因链:在Throwable类中的cause属性,表示被当前异常包装的原始异常。(可以称为异常原因)在打印异常栈轨迹时,会递归打印 原始异常的异...

weixin_42309178的博客 1345

【一步到位】Android Studio 实现安卓连接阿里云物联网云平台

最新版本目前是Android Studio Iguana | 2024.1.2,你可以到官网上去找之前的版本,手上有工作项目的不要去轻易尝试,说不定你就编译失败了,失败了也不要担心,解决就可以了。

m0_73799445的博客 1万+

AI智能体Codex实战:外贸客户开发自动化,85家精准客户深度分析

如果你在外贸行业,特别是工业品领域,一定遇到过这样的困境:想开发海外客户,但不知道从何下手。Google搜索出来的要么是B2B平台上的老面孔,要么是信息残缺的过时黄页。手动筛选、整理、验证,一个客户信息就要花上半小时,效率低得让人抓狂。 更头疼的是,好不容易找到一些公司名称,却不知道他们的采购决策人是谁、公司规模如何、业务是否匹配。传统的客户开发就像大海捞针,投入大量时间成本,回报却充满不确定性。 今天要介绍的这个工具,可能会彻底改变你的工作流。它不是另一个CRM软件,而是一个基于AI的智能客户开发与情报分

weixin_29054399的博客 346

JAVA栈异常_java常用类解析七:java异常机制、异常栈、异常处理方式、异常链、异常丢失...

1、java标准异常概述Throwable表示任何可以作为异常被抛出的类,有两个子类Error和Exception。从这两个类的源代码中可以看出,这两个类并没有添加新的方法,Throwable提供了所以方法的实现。Error表示编译时和系统错误。Exception是可以被抛出的异常类。RuntimeException继承自Exception(如NullPointerException),表示运行时...

weixin_35126737的博客 461

【即插即用模块】Transformer篇 | CVPR 2025 | SADA:多尺度+可变形采样,完美替换自注意力实现涨点!

文章摘要 本文提出了一种尺度自适应可变形注意力模块(SADA),用于处理图像修复中的结构化伪影问题。SADA通过多尺度多头机制捕获远程依赖关系,并引入可变形采样偏移来有效处理非均匀空间分布的模式。该模块适用于底层视觉任务,可替代ViT自注意力,实验证明能显著提升性能。代码已开源,支持即插即用集成。 核心特点: 多尺度头适应不同大小的重复模式 可变形偏移优化非均匀分布采样 轻量级设计,易于集成到现有架构 适用场景:图像去噪、超分辨率等底层视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1431

Java中获取异常栈中的底层异常信息-分析Java异常栈

Java中获取异常栈中的底层异常信息,解决对于多层嵌套的异常栈来说,如何获取到最开始的异常信息,从而告警下发

大数据开发、JAVA开发、人工智能AI 1284

时间门控拉曼进展

拉曼光谱就像是用光给分子拍“指纹照”,通过激光照射样品,散射光会揭示样品的分子结构。但问题来了,样品有时会发荧光,就像拍照时闪光灯太亮,把指纹照模糊了。时间门控拉曼光谱技术就像加了个“快门”,只在拉曼信号出现的那一瞬间开门,把慢吞吞的荧光挡在门外,这样就能拍到清晰的“指纹”。

qq_53529450的博客 537

BLDC控制实验:方波、霍尔、开环、定速、正转

本文记录博主学习BLDC控制软件的过程。 文章目录1 概述2 软件架构及工具链2.1 软件架构2.2 工具链3 底层代码生成3.1 时钟配置3.2 按键输入配置 1 概述 本文是博主第一次做BLDC控制实验,目的仅仅是写代码让BLDC转起来,而暂时不考虑其他复杂的需求。 控制的方法是比较简单的六步换相法。利用电机内部的霍尔传感器,通过参考电机厂家给出的二二导通换相表,生成方波来控制电机。第一次实验为了简化需求,只考虑开环、定速、正转的情况: 开环:不考虑速度反馈,直接给PWM让电机转起来; 定速:不考虑速

u013288925的博客 1万+

开发利器——异常栈,你真的会看吗?

学会查看分析异常栈,可以为我们工作大大提高效率,希望这篇文章给大家带来收获,最后再送给大家一个小技巧。异常栈不仅仅可以用来排查异常哦,还可以帮助大家学习源码,debug 源码找不到入口怎么办,那就创造一个异常!

weixin_44584422的博客 2033

携程机票数据爬取实战:使用 Python 获取携程网机票信息

通过本篇博客,我们详细介绍了如何使用 Python 爬取携程网的机票信息,涉及了静态网页爬取(使用 Requests 和 BeautifulSoup)和动态网页爬取(使用 Selenium)两种方法。通过获取的数据,我们不仅能够进行票价分析,还可以构建更为复杂的预测模型或趋势分析工具。爬虫技术不仅能够帮助我们收集有价值的数据,还能够为商业决策提供数据支持。在实际应用中,我们可以结合更多的分析方法,如自然语言处理、图像处理等,进一步提升数据的价值。

2201_76125261的博客 1657

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

Java 异常解析前言 前言

YING—country的博客 3万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

异常-异常场景的测试

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

Queen_xzx的专栏 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java异常 — — 异常的处理

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

mocoll的博客 1万+

OV9734 DATASHEET,完整规格书

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

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

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

Feify博客 1万+

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

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

qq_29090169的博客 1万+

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

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

YKX0000的博客 2871

【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,欢迎浏览我的博客,希望能给你提供帮助。 8300

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的博客 5153

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

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

qq_41969892的博客 3999
上一篇: 抽象类和接口(备忘)
下一篇: java的反射机制(备忘)
若愚zoe
博客等级 码龄15年 19粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值