Java异常及处理

Java中使用异常类及其子类,对程序中出现的各种异常事件给出一个统一的、简单的抛出错误和异常的处理错误的机制。当程序出现非正常情况时,系统就会创建异常类的一个对象。当一个异常对象产生后,程序中使try…catch块的catch语句捕捉这个异常对象,并做出相应的处理。

下面是java处理异常的处理机制包括抛出异常对象和处理异常。先讲异常的处理先,异常分为两种:Error和 Exception。编写程序时应对考虑异常的产生和处理。通常,程序不需要处理Error类型的异常,但是应关注Exception类型的异常。如果方法的代码中可能产生异常,而编程时又不知道如何处理它,那么可以简单地抛出异常,留给哪些调用此方法的代码部分去处理。

指明一个方法可以抛出异常的方式为:在方法定义的后面加上throws关键字,把抛出的异常类型写上,如下所示:

Int method1()throws EOFException,FileNotfoundException

{ //代码省略   

}

上述代码表明方法methodl 将抛出异常EOFException 和 FileNotfoundException,而不对这些异常进行处理。处理异常必须使用try…catch,把可能产生异常的代码放在try语句块中,对不同类型的异常处理的代码放在catch中,这样,当异常产生时,程序会自动执行对应的catch块。如下:

Public class TryException{

  Public static void main(String[] args){

   Int  i= 1; int  j = 0;

try{

System.out.println(“在Try语句块中:“+”i=”+i+”j=”+j);

 System.out.println(i/j);

System.out.println(“Try语句块的最后一句”);

}catch(ArithmeticException e){

System.out.println(“算术运算异常被捕获”);

System.out.println(“catch语句块中最后一句”);

}

System.out.println(“try或者catch语句块后!”);

}

}

  运行结果为:在Try语句中:i=1 j=0

算术运算异常被捕获

Catch语句块中最后一句

Try或者catch语句块后!

  从上面的列子可以看出,由于产生了一个算术运算异常,try语句部分的System.out.println(“Try语句块的最后一句”);没有执行,而直接执行了catch语句块,这种方式能够将错误处理单独放到catch块中进行处理。如果没有抛出异常,那么try语句块将完整地执行,而catch语句块中的语句将不被执行。

  try与catch语句块是一个完整的整体,中间不能加入除了注释以外的其他语句。一个try语句后可以跟多个catch语句,每个catch语句处理一种异常类型,需要注意的是:如果异常的类型之间存在继承关系,那么最底层子类型应该在最前面的catch语句中,而最高层的超类型应该在最后的catch语句中。

  当异常出现时,try语句块中的其余语句就会被跳过,这可能导致一些问题,列如资源释放,为此可以采用finally字句。finally字句和try语句相配套的,如果try语句块执行了,那么finally字句必定会执行,因此可以在finally字句中写上哪些必须被执行的代码。一个try语句必须至少有一个catch字句或者finally字句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值