Java之异常处理

本文详细介绍了Java中的异常处理机制,包括异常的概念、分类、处理方式等,并提供了try...catch...finally的具体使用示例,还讨论了throws关键字的应用场景以及自定义异常的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、异常的概述和分类

I、概念:
异常是指Java程序在运行过程中出现的错误。
II、分类:
这里写图片描述

2、 JVM默认处理异常的方式

当main函数接收到一个问题是,有两种处理方式:
I、自己处理,例如try…catch;
II、交给调用main的jvm来处理;
jvm会将异常名称、异常信息、异常出现的位置打印在控制台,同时程序将停止运行。

3、异常处理的两种方式

I、try…catch…finally
try—检测异常
catch—捕获异常
finally—释放资源
三种搭配方式:

try catch
try catch finally
try finally

示例:
这里写图片描述
如果try中有异常,这通过catch将异常捕获,执行catch语句块中的语句,如果try中没有异常,则走catch。当通过try…catch处理了异常后,后面的代码可以继续执行,程序不会中断。catch后面的ArithmeticException是指除0异常,也就是说这个语句只能处理除0异常。
实际开发:
a、安卓开发:try{}catch(Exception e){}将所有异常接收
b、服务端开发:一般都是底层开发,从底层一步一步往上抛
注意:try后面如果跟多个catch,那么小的异常放前面,大的异常放后面,根据多态的原理,如果大的异常放前面,就会将所有的子类对象接收,后面的catch就没意义了
finally关键字:
被finally控制的语句一定会执行,特殊情况不会执行,如在执行前jvm退出( System.exit(0) ),finally 主要用于释放资源,如IO流中关流、还有数据库操作中也比较常见。finally的一定会执行到底有多强大,可以看看这个例子:
这里写图片描述
下面是运行结果:
这里写图片描述
如果将return语句改为System.exit(0),finally语句才不会执行。
II、throws处理异常
a、编译时异常的抛出
这里写图片描述
编译时异常必须要在方法上加throws

b、运行时异常
这里写图片描述
当抛出运行时异常时,因为在运行时不需要处理,所以方法上无需加throws进行声明。

throw和throws的区别:
throws:
a、用在方法后面,跟的是异常类名
b、可以跟多个异常类名,用逗号隔开,没有先后顺序
c、表示抛出异常,有该方法的调用者处理
throw:
a、在方法体内,跟是是异常对象名
b、只能抛出一个异常对象名
c、表示抛出异常,由方法体内的语句处理

4、自定义异常

和其他类的定义方法一样,只需要继承Exception类即可:
这里写图片描述
这样就自定义了一个异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值