Java异常

Java异常

java异常处理是通过try-catch-finally三个关键字来实现的。用try来监视执行一段程序,如果出现异常,系统就会抛出(throws)异常,可以根据异常的类型来捕捉(catch)相应的异常来处理它,或最后(finally)由默认处理方法来处理。

下面是其语法格式:


		try {
// 接受监视的程序块,在此区域内发
// 生的异常,由catch中指定的程序处理
} catch (Exception e) {
// 处理异常
} finally {
// 最终处理(默认处理)
}

try语句

在执行程序的过程中,使用try{}语句监视一段程序段,该程序段可能会产生并抛出一个或多个异常。try语句就像一个监视器,它监视放置在其内部的程序段执行时是否发生异常,如果有异常就会根据异常的类型自动生成相应的异常对象并将其抛出。并且使用后面的catch语句捕获和处理此异常对象。如果没有异常,则程序忽略catch代码段向下执行其他代码。


catch语句

每个try语句伴随一个或多个catch语句,用于捕获try代码段所产生的异常并做相应的处理。

catch紧跟一对圆括号,括号内声明了一个某种异常类型的形参,用于指明其所能捕获的异常类型,运行时系统通过参数值把被抛弃的异常对象传递给catch语句。

当然也可以用一个catch语句处理多个异常类型,这时他的异常类型应该是这多个异常类型的父类,但这种方式使得在程序中不能确切判断异常的具体类型。

如果try语句后跟多个catch语句,并且捕获和处理的异常存在继承关系,那么应该先捕获子类异常然后再捕获父类异常(如果先捕获父类异常后捕获子类异常将导致子类异常不能被执行,程序会报错)。


finally语句

捕获异常的最后一步时通过finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前,能够对程序的状态统一管理。

既不论是否发生异常finally语句都会被执行。

finally语句不是必须的,很多时候也可以仅使用try-catch语句来捕获和处理异常。

举一个简单的例子:

	public static void main(String[] args) {
try {
int[] a = { 1 };
System.out.println(a[2]);
} catch (Exception e) {
System.out.println(e);
} finally {
System.out.println(“finally语句最后一定会执行”);
}
}

运行如上代码,可以看到数组a的长度为1,既最大索引为0,而接下来控制台打印了数组a的第2个索引,此时出现异常,而由于使用了try-catch-finally语句来对异常进行了捕获(Exception是此时出现异常的父类),加下来执行catch中的代码,控制台打印出异常e,接着执行finally语句中的代码,如下所示:

java.lang.ArrayIndexOutOfBoundsException: 2
finally语句最后一定会执行

关于异常处理的概述可以参考




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值