Java中的异常处理

转自: http://ltzmage.blog.163.com/blog/static/179699982006111893553993/


1、异常处理流程:
   抛出异常以后,首先,同Java中其他对象创建一样,将使用new在堆上创建异常对象。然后,当前的执行路径(它不能继续下去)被终止,并且从当前环境中弹出对异常对象的引用。从此,异常处理机制接管程序,并开始寻找一个合适的地方来继续执行此程序。

2、当异常被抛出时,异常处理机制将负责搜寻参数与异常类型匹配的第一个处理程序,会捕获声明的异常以及所有从它派生的异常,一旦找到匹配的处理程序之后,就不会继续查找,因此,建议将catch(Exception e)放在最后,捕获一切未知异常。
   try{
}catch(Type1 id1){
}catch(Type2 id2){
}

3、要自己定义异常类,必须从已有的异常类继承。最简单的方法就是让编译器为我们生成缺省构造方法。对异常来说,最重要的部分就是类名,基本上可以通过类名识别出是什么类型的异常。

4、Throwable表示任何可以作为异常被抛出的类,分为两种类型:Error表示编译时和系统错误(除特殊情况,一般不用关心);Exception是可以被抛出的基本类型,既是程序员一般关心的类型。

5、异常与方法声明的关系:
(1)派生类构造方法的异常说明必须包含基类构造方法的异常说明,即派生类构造方法的异常必须为基类异常或其父类,当基类构造方法没有异常时,派生类构造方法也可以异常声明。注意,
派生类构造器不能捕获基类构造方法抛出的异常。

(2)派生类方法可以不抛出异常,即使基类有异常说明,如果派生类方法有异常说明,必须是基类异常或其子类,而且当基类没有异常声明时,派生类方法不允许异常声明。


Java标准异常
Throwable这个Java类被用来表示任何可以作为异常被抛出的类。Throwable对象可分为两种类型(指从Throwable继承而得到的类型):Error用来表示编译时和系统错误;Exception是可以被抛出的基本类型、在Java类库、用户方法以及运行时故障都可能抛出Exception异常。
Java异常类的结构:
  Throwable
   |____Error
   |____Exception
         |____RuntimeException
         |____其它Exception
  Error:Java运行系统中的内部错误以及资源耗尽的情况。
  Exception:RuntimeException及其子类(编程导致的异常)、其它Exception类。
 
关于RuntimeException
RuntimeException(或任何从它继承的异常),对于这种异常类型,编译器不需要异常说明。注意,只能在代码中忽略RuntimeException(及其子类)类型的异常,其他类型异常的处理都是由编译器强制实施的。
 
关于finally
对于一些代码,可能会希望无论try块中的异常是否抛出,它们都能得到执行。为了达到这一效果,可以在异常处理程序后面加上finally子句。
示例1。
方法{
  try{
  ……..
  return;//加此条语句
  }
  catch(Exception e){
  }
  finally{
  ……….//会执行
  }
  ……….//不会执行
 
}
示例2。
方法{
  try{
  ……..
  System.exit(-1);//终止运行
  }
  catch(Exception e){
  }
  finally{
  ……….//不会执行
  }
  ……….//不会执行
 
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值