Java异常处理的学习

Java的异常机制常常使用try,catch,finally,throw和throws五个关键字,try块中放置可能引发异常的代码,catch块用于处理有异常的代码块,多个catch块后可以加上finally块,finally块用于回收在try块里打开的物理资源,异常机制能保证finally块总被执行。throws关键字主要在方法签名中使用,用于声明该方法可能抛出的异常,而throw用于抛出一个实际的异常,throw可以单独作为语句使用,抛出一个具体的异常对象

java异常分为Checked异常和Runtime异常,checked异常可以在编译阶段被解决,而Runtime异常则无须解决

try块中出现异常,会被提交到java运行时环境中(抛出异常),java运行时环境收到异常对象时,会寻找能处理该异常对象的catch块,找到对应的catch块,将异常对象交给该catch块处理(捕捉异常),java运行时环境找不到捕获异常的catch块,则运行时环境终止,Java程序也将退出(注意:try和catch块后面的花括号都不可以省略,try块中申明的变量只能在try块中使用,catch块不能使用)

java非正常情况分为两种:异常(Exception)和错误(Error),它们都继承自Throwable父类,Error错误是与虚拟机相关的问题,系统崩溃,虚拟机错误,动态链接失败。一般不用catch块捕获。

1)运行程序时参数不够,将会发生数组越界异常,Java将调用IndexoutofboundsException对应的catch块处理

2)运行程序时,参数不是数字,而是字母,发生数字格式异常,Java运行时将调用NumberFormatException对应的catch块处理该异常

3)运行该程序时输入的第二个参数是0,将发生除0异常,Java运行时调用ArithmeticException对应的catch块处理对应的异常

所有父类异常的catch块都应该排在子类异常catch块的后面(先处理小异常,然后再处理大异常)

catch块可以捕获多种类型的异常,多种异常类型之间用竖线(|)隔开

小知识:Java的垃圾回收机制不会回收任何物理资源,只能回收堆内存中对象所占用的内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值