java-异常篇

Throwable
  |--Error:较严重,对于Error一般不编写针对性的代码对其进行处理。
  |--Exception:较轻,对于Exception可以使用针对性的处理方式进行处理。

异常的处理

   两种方法:一:catch()捕获,二:throws (方法名上抛出)异常。否则编译出错!!!!
 对于部分代码块处理方式:(这里是throw)

  java 提供了特有的语句进行处理。
     try
      {
          需要被检测的代码;
       }
  catch(异常类 变量)
  {
       处理异常的代码;(处理方式)
  }
  finally
  {
     一定会执行的语句;//除非之前执行System.exit(0);代码

        //通常用于关闭资源。
  }

  对于方法上的处理:(这里是throws)

      方法名 ( ) throws ArithmeticException ,ArrayIndexOutOfBoundsException

      { .... }

对捕获到的异常对象进行常见方法操作:
  String getMessage():获取异常信息。

对多异常的处理:

  1,声明异常时,建议声明更为具体的异常。这样处理的可以更具体。
  2,对方声明几个异常,就对应有几个catch块。不要定义多余的catch块。
      如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。

   注意:建立在进行catch处理时,catch中一定要定义具体处理方式。
        不要简单定义一句 e.printStackTrace(),
        也不要简单的就书写一条输出语句。

异常抛出的原则:

      1,仅有一个与异常对应catch模块执行,剩下的catch模块不会执行。且

           Java只对第一个发现的异常进行catch,不再继续执行下去,即后面

           可能出现异常的代码不再执行,并catch它。

      2,具有父类的catch模块要放到最后面,否则无法编译过去。

      3,对于抛出(throws)的异常必须catch处理,或者主函数将其抛出。

自定义异常:

      必须是自定义类继承Exception。(因为只有这样才可以执行throws和throw操作。)

运行时异常:RuntimeException

      Throwable
          |--Error 
          |--Exception

                 |-- RuntimeException

异常在子父类覆盖中的体现;
1,子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。
2,如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
3,如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。
如果子类方法发生了异常。就必须要进行try处理。绝对不能抛。

posted @ 2014-12-01 15:34  beyondbycyx  阅读(117)  评论(0编辑  收藏  举报