Java学习日记----异常

------- android培训java培训、期待与您交流! ----------

 

1 概念:

  对问题的描述,将问题进行对象的封装.

2 体系  Throwable

       |--Error

       |--Exception 

           |--RuntimeException

   异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性,也就是可以被throw和throws关键字所操作,只有异常具备这个特点.

3 throw和throws的用法

   throw定义在函数内,用于抛出异常对象.

   throws定义在函数上,用于抛出异常类,可以抛出多个,用","隔开.

4  当函数内由throw抛出异常对象,未进行try处理量,必须要在函数上声明,否则编译失败.但是 RuntimeException除外,也就是说如果函数抛出RuntimeException异常函数上是可以不用声明 的.如果函数上声明了异常,调用才需要处理,既可以throw,又可以try.

5 异常有两种:

   1> 编译时被检测异常,该异常在编译时,如果没有处理,没有抛出,也没有try,编译失败,该异常被标  识,代表该异常可以被处理.

   2> 运行时异常(编译时不检测)在编译时不需要处理,编译器不检查,该异常的发生,建议不要处理,让程序停止,需要对代码进行修改.

6 异常的处理语句

    tyr{需要被检测的代码}catch(){处理异常的代码}finally{一定会执行的代码}

    组合: 

      1>  try{}catch(){} 

      2>  tyy{}catch(){}finally{} 

      3>  tyr{}finally{}

    注意:finally里面通常定义关闭资源的代码,因为资源必须释放. 

    有一种情况是计不到finally的,在fianlly之前有System.exit(0);--->JVM退出.

7 自定义异常

  1> 自定义类继承Exception类或RuntimeException类---->是为了让该类具备可抛性和操作异常的共性方法.

  2> 要定义自定义异常信息时,可以使用父类已经定义好的功能,只要将异常信息传递给父类的构造函数就可以了.自定义异常是按照Java的面向对象的思想,将程序中出现的问题进行封装.

8 异常的好处

  1> 将问题进行封装 .

  2> 将正常代码和问题处理代码相分离,方便于阅读.

9 异常的处理原则

  1> 处理方式只有两种:tyr或throw.

  2> 如果调用到抛出异常的功能(方法)时,抛出几个就要处理几个,一个try对应多个catch.

  3> 在多个catch中,父类的catch往下放.

  4>catch内需要针对性的处理方式,不要简单定义printStackTrace(),输出语句,也不要不写. 

    |--如果捕获到的异常本功能(方法)处理不了时,可以继续在catch中抛出. 

    |--如果异常处理不了时,但又不属于该功能出现的异常,可以将异常转换后,再抛出和该   功能相关的异常. 

    |--如异常可以处理,当需要将异常产生的和本功能相关的问题提供方法出去,让调用者知   道,并处理,也可以将捕获到的异常处理后,转换新的异常.

10 异常子父类覆盖时的注意事项

  1>子类抛出的异常必须是父类异常的子类.

  2>如果父类或接口没有异常抛出时,子类覆盖出现异常,只能try,不能抛.

posted @ 2012-12-08 00:35  叶征东  阅读(106)  评论(0编辑  收藏  举报