编程开发 > JAVA > 文章内容

java基础知识总结(116)

2016-6-20编辑:ljnbset

异常(Exception)

 1) 异常的引出: 

   A 行为(方法, 过程)的意外结果

   B Java 的异常是方法的意外结束

     如: nextLine() nextInt()

 2) Error和Exception的分类层次

  Throwable 可抛出的, 是错误的跟, 包含异常类的实现代码

    |--Error 是系统不可恢复的错误,由JVM发生

    |   |--OutOfMemoryError 堆内存溢出

    |   |--StackOverflowError 栈内存溢出

    |--Exception 程序可以检查处理的异常,常见的异常继承根

        |--java.text.ParseException format解析对象时候发生

        |  如:Date d = dateformat.parse("2010-5-5");

        |--RuntimeException 非检查异常,Javac忽略对

             |      这类异常的语法检查,如:异常抛出,异常处理等。

             |--IllegalArgumentException 

             |--NullPointerException  *

             |--ArrayIndexOutOfBoundsException *

             |--ClassCastException *

             |--NumberFormatException * Integer.parseInt(S)

 3) 异常的处理

   A 使用try catch finally 捕获

   B 声明抛出异常

   try catch finally

  try 是尝试运程代码块,如果有异常会被随后的catch捕获

  异常发生以后代码不执行

  catch代码块是异常处理代码。需要提供合理的处理,异常的处理

  是与具体业务逻辑有关。可以写多个catch处理一系列异常,但是

  要注意:异常的大小关系,大类型的放到后面处理。

  finally 代码块,不管是否出现异常,总会执行的代码块。

  经常用来处理现场的清理,比如:可靠的数据库连接关闭。

 4) 异常的分类

   A 检查异常 异常检查规则:

     一个方法如果抛出了异常,这个方法就必须声明异常的抛出.

     调用抛出异常的方法,必须处理异常

   B 非检查异常

     Javac忽略对RuntimeException 的检查, 包括子类型

 5) 异常的处理原则 与忌讳

   A 能够底层处理的尽量处理,但是如果不能处理,必须抛出到

   调用者(方法)。

   B 建议在捕获到异常时候使用e.printStackTrace(),打印到

   控制台,输出内容是:出现异常时候的方法调用堆栈.

   忌讳:

   A 不应该简单的抛弃。

   B 不建议 粗粒度处理异常 如:catch(Exception e).

   处理方式,依赖于具体业务逻辑,很灵活。

 6) 异常的实例:

     User reg( String pwd, String email)

       throws UserExistException;

     User login(String email, String pwd)

       throws NameOrPwdException;

   自定义异常类一般继承于Exception

   软件中会大量使用自定义异常,一般从Exception继承。

异常类命名要有实际意义, 一般都手工继承父类的构造器。

java基础知识总结(115)

热点推荐

登录注册
触屏版电脑版网站地图