JAVA中的异常处理

JAVA中的异常处理关键字有try,catch,throw,throws,finally;try语句用来测试有无异常,catch语句用于捕获异常,throw,throws用于抛出异常,而finally语句无论有无异常,即使碰到了return语句,他都会被执行,言下之意,他会被无条件执行。

运行的顺序是这样的,先运行try中的语句,如果抛出了一个异常,则try语句停止执行,生成某种异常类的一个对象,检查catch中是否能捕获到这种异常,如果可以,则转到对应catch语句执行,然后向下继续执行,否则,程序运行终止。

应用以下的语句可以打印出异常信息,string getMessage(),得到异常信息; string toString()可以获得异常信息的简短描述;void printStackTrace()可以获得异常所在的行数;

Catch语句的格式是这样的,catch(异常类 异常类对象),异常类可以分为两种,RunTimeException,和IO异常类,一切异常类的祖先类都是Exception,根据多态性原来,在catch语句中只要写Exception就可以捕获一切异常,但是一般情况下,我们需要写出更加具体的异常,比如说ArithmeticException和FileNotFoundException,一般的格式是吧具体异常捕获语句catch写在前面,而通用的catch(Exception e)语句写在最后。

当然也可以自定义异常类,该类必须继承自Exception类,用super()向父类传递信息。

Throw由于抛出具体异常,throws用于声明抛出异常类型。

写了一个代码,其中的自定义异常类没用上。但是代码是正确可以运行的,如下:
Class ThrowException
{
 int division(int a ,int b) throws Exception
 {
  return a/b;
 }
}
class MinusDivisionException extends Exception
{
 MinusDivisionException(String str)
 {
  super(str);
 }
}
class ExceptionTest
{
 
 public static void main(String[] args)
 {
  ThrowException ex=new ThrowException();
  try
  {
   System.out.println(ex.division(5,0));
  }
  catch(ArithmeticException e)
  {
   System.out.println(e.toString());
  }
  catch(Exception exc)
  {
   System.out.println(exc.toString());
  }
  finally
  {
   System.out.println("it's only a test");
  }
 }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值