JAVA 异常

Java的异常 运行时异常是指在程序运行过程中可能会出现的异常,这些异常通常是由程序逻辑错误引起的,而不是外部环境或用户输入造成的。这些异常通常是由外部环境或用户输入造成的,程序员需要在代码中显式地处理这些异常,以确保程序的稳定性和可靠性。在这个示例中,我们展示了一个可能抛出文件未找到异常和IO异常的情况,并使用try-catch块来捕获并处理这些异常。一般在service层处理受检异常,通过创建一个自定义的异常类,在需要的地方抛出自定义异常即可。可以直接在service层的最外层进行抛出异常或者直接捕获异常并处理异常。 阅读详情

异常:在java中用类的形式对不正常情况进行了描述和封装,将正常流程代码和问题处理代码进行分离,提高阅读行。

 

问题很多,意味着描述的类很多,将其共性进行向上抽取,形成了异常体系。

不正常情况分成了两大类:

Throwable:

|——1、不可处理的:Error。

        特点:比如运行文件不存在,内存溢出,这是错误不是异常。由JVM抛出的严重性问题,一般不处理,直接修改程序。

|——2、可以处理的:Exception。

        特点:可抛通过throws和throw体现,Throwable及其子类都具有可抛型

 

发生异常时,下面的代码不再执行,把问题不断抛给调用者,直到抛到JVM(从栈顶不断往底下抛)。

 

异常的分类:

1、编译时被检测异常:Exception何其子类中都是,除了RuntimeException异常体系。

2、编译时不检测异常(运行时异常):Exception中的RuntimeException和其子类(这种问题发生程序无法运行,更多是调用者的原因导致的或者引发了内部状态的改变,一般不处理,直接编译通过,在运行时让调用者的程序强制停止,让调用者对代码进行修正 )。

所以要么继承Exception(检查),要么继承RuntimeException(不检查)

 

throws和throw的区别:

1、throws使用在函数上,throw在函数内。

2、throws抛出的是异常类,可以抛出多个,用逗号隔开。

      throw抛出的是异常对象,一次只能抛一个。

3、throw一般在函数内部看不到,因此得用throws声明。

 

异常处理的捕捉形式:

try {

        需要被检测异常的代码

} catch ( 异常类 变量 ) {

        处理该异常的代码

} finally {

         一定会被单独执行的代码

}

代码放在try块中作用域会变小。当try检测到异常时,不会执行try中下面内容,直接执行catch中内容。

finally:除非关闭JVM,否则一定会执行的代码

三种用法:

1、try-finally:异常无法直接catch处理,但资源在try中开启却需要在finally中关闭

2、try-catch-finally

3、try-catch

异常的转换/封装:将自己熟悉的问题进行处理,并将调用方进行告知(JDBC)。

异常处理的原则:

1、函数如果抛出需要检测的异常,呢么函数必须要声明,否则用try-catch,否则编译失败

2、如果调用了声明异常的函数,要么try-catch要么throws,否则挂掉

3、功能内部可以解决用catch,解决不了用throws给调用者解决

4、一个功能如果抛出了多个异常,那么调用时必须对应多个catch进行针对性处理

      内部有几个要检测的异常,就抛几个,抛几个,就catch几个

 

异常的注意事项:

1、子类覆盖了父类方法时,父类方法如果抛出了异常,那么子类的方法只能抛出父类的异常或者该异常的子类。

2、如果父类抛出多个异常(ABC),子类只能抛子集(ABC、A、B、C、AB、AC、BC)。

3、父类/接口没有抛出异常,子类绝对不能抛出异常。

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

相关推荐

Java 异常处理 -- Java 语言的异常、异常链与断言

世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确处理好意外情况,才能保证程序的可靠性。

栗筝i的博客 5211

JVM——java的异常处理机制

java的异常处理机制 异常指的是成勋运行时所发生的非正常情况或者错误,JVM会将错误表示为一个异常并抛出。这个异常可以在catch代码块中进行捕获,然后处理。 Java中定义了一个Throwable作为所有异常的基类。Throwable下面有两个重要的子类Error和Exception。 1、Error(错误) 例如:OutOfMemoryError、ThreadDeath JVM层次的严重错...

weixin_42924812的博客 607

光伏逆变器在环测试解决方案

光伏行业是利用太阳能光辐射将其转化为可用电能的行业。近年来,为应对气候变化和能源安全等挑战,全球对清洁能源的需求不断增长。太阳能作为最具潜力和可再生的能源之一,被视为替代传统化石能源的重要选择,光伏行业因此得到了迅猛发展,并在全球范围内得到了广泛应用。许多国家和地区都将光伏技术作为关键的能源发展方向。尤其是在新兴和发展中国家,光伏发电具有巨大的增长潜力,将成为未来市场竞争的重点。随着规模化生产的推进,光伏组件的制造成本不断降低。

shiwei0813的博客 960

Java异常

Java异常的讲解

熵减玩家 987

1.triton镜像使用

1)拉取镜像2)启动容器指定模型仓库时可以执行server下的./fetch_model.sh,见2.2部分GPU版本的启动CPU版本的启动区别只在于--gpus=1这个参数注意:docker19.03之前的版本使用gpu要指定显卡硬件名,docker19.03之后的需要安装nvidia-container-toolkit或nvidia-container-runtime安装之后要重启docker查看gpus参数是否安装成功重新执行我遇到了如下错误先使用非GPU版本的。

天启的博客 2077

ESP-01S获取网络时间踩坑全记录:AT指令调试、JSON解析乱码、时区处理,一个都不能少

本文详细记录了使用ESP-01S WIFI模块获取网络时间的完整过程,包括AT指令调试、JSON解析乱码处理以及时区转换等关键步骤。通过实战案例和代码示例,帮助开发者避开常见陷阱,实现稳定的网络时间同步功能。

weixin_30460489的博客 295

【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

玩转Zabbix智能告警:降噪、排班、认领、升级、IM协同

集成Zabbix告警到FlashDuty,获得告警降噪、智能排班、IM协同等能力

n9ecommunity的博客 1038

【Java】认识异常

自定义异常:我们自己定义维护符合我们实际需要的异常结构。//登入if(!System.out.println("用户名错误!");if(!System.out.println("密码错误!");他的密码输入错误,结果输出如上。如果我们想要在我们输错时报出异常,这时,我们可以自己定义一个异常,用户名输入错误异常和密码输入错误异常;我们可以定义一个输入错误异常类和密码输入错误异常类来继承运行时异常super();super(m);super();super(m);

2301_80543957的博客 2258

ScanNet数据集下载全攻略:从申请到解析的保姆级教程(含常见问题解决)

本文提供了ScanNet数据集从申请授权到下载、解析的完整实战指南。针对这个大规模室内RGB-D数据集,详细介绍了官方申请流程、优化下载策略、数据验证方法,并重点解决了深度图解析等常见问题,帮助三维视觉研究者高效获取和使用这一宝贵资源。

5f4d3s2a1q的博客 618

Word多级标题出现黑块的解决思路(word 数字必须介于1-1638之间)

遇到多级目录出现黑块问题,看到一篇博客完美解决,在此记录。

AI_Optimization的博客 3716

Java——异常

在我们日常生活中,我们可能会生病,会头疼,会肚子疼,打球的时候也可能会受伤。再程序中也是一样,运行时难免会出现一些奇奇怪怪的问题。在Java中,将程序执行过程中发生的不正常行为称为异常。算数异常//算数异常数组越界异常//数组越界异常空指针异常//空指针异常在Java中不同类型的异常,都有与其对应的类来进行描述。程序先执行 try 中的代码如果 try 中的代码出现异常, 就会结束 try 中的代码, 看和 catch 中的异常类型是否匹配.

m0_74100417的博客 1550

基于ASP.NET+SQLServer的美妆网站的设计与实现

通过本次ASP.NET MVC美妆商城项目的开发,我们实现了一个功能完善、性能稳定的在线购物平台。该项目不仅提升了用户的购物体验,也为商家提供了一个高效的商品管理和销售渠道。未来,我们将持续优化系统功能,提升用户体验,以适应不断变化的市场需求。

毕业设计大牛哥 1499

java java 检查型异常_Java异常——异常分类、声明检查型异常

一、异常的分类1、在Java程序设计语言中,异常对象都是派生于Throwable类的一个类的实例。如果Java的内置类不能满足需求,用户还可以创建自己的异常类。2、异常分为两支,Error和Exception。Error类层次描述了Java运行时系统的内部错误和资源耗尽错误。这种情况很少出现,如果出现了这种情况,就只能通知用户并妥善地终止程序。Exception类是应该重点关注的层次结构。3、Ex...

weixin_29688535的博客 3145

国社科基金申报书“选题与说明依据”用AI怎么写?借助Gemini 3 Pro一次理清研究演进逻辑

研究进展部分要明确指出已有研究的不足与局限,比如方法不足、数据或材料受限、研究视角单一等等局限,之后要找准研究切入点,自然引申出自己的研究问题。为提升课题申报书的质量,学术史梳理要遵循述评结合、中外结合、新老结合的原则,不仅“述”,更要“评”,兼顾国内研究与国际学术动态,统筹经典研究与最新成果。它是对选题的整体概述,需阐明研究的具体问题、视角以及核心概念。2)存在问题或争议:结合已有研究或实践现状,指出该领域在理论建构、测量工具、实践应用或研究结论方面仍存在的不足、空白或争议,明确研究的必要性;

智能AI让学术科研更容易 942

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JAVA 异常

明白异常到底是什么?—>异常就是类知道异常的体系 / 知道异常的分类在编写程序时,如果程序中出现错误,此时就需要将错误的信息告知给调用者,比如:参数检测。在Java中,可以借助throw关键字,抛出一个指定的异常对象,将错误信息告知给调用者。具体语法如下:throw new XXXException(“异常产生的原因”);throw new NullPointerException("传递的数组为null");

2301_80934700的博客 1409

老版QQ原生表情gif动态

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

【Java异常】Java异常监控重要手段 --异常链

异常链”无论是在框架源码中还是在日常项目开发中,都是一项非常重要的对异常处理的手段。以下摘抄自《Java编程思想》对异常链的介绍:常常会想要在①捕获一个异常后抛出另一个异常②并且希望把原始异常的信息保存下来,这被称为异常链。略。

qq_43783527的博客 2136

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java异常判断_Java异常类

异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。Java异常类层次结构图:在 Java 中,所有的异常都有一个共同的祖先 ...

weixin_42472941的博客 5344

java各种异常总结

java各种异常总结

linsa_pursuer的博客 3931

【Java异常】什么是异常,Java中如何处理异常?

`Exception`:异常,代表程序可能出现问题,我们通常会用Exception以及他地子类来封装程序出现的问题(异常)。 - `运行时异常`:RuntimeException及其子类,编译阶段不会出现异常提醒。(如:NullPointerException、ArrayIndexOutOfBoundsException) - `编译时异常`:除去RuntimeException及其子类,其余异常都是编译时异常,是编译阶段就会出现的异常,不解决,程序就无法编译运行。

ebb29bbe的博客 650

Java异常总结

Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制。 Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出。 Java异常关键字 • try ...

ThinkWon的博客 1万+
上一篇: JAVA 继承与重写
下一篇: 正则表达式对字符串的常见操作
donCoder
博客等级 码龄9年 65粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值