频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
Java编程思想读书笔记-5(第10章)
2009-06-13 00:05:42           
收藏   我要投稿

第10章    通过异常处理错误


一.    基本异常

1.    抛出异常的原理
1)    像产生一个Java对象那样在heap上以new产生一个异常对象。
2)    停止目前的执行路线,将上述那个异常对象的reference自目前的context丢出。
3)    异常处理机制接手工作,寻找得以继续执行的适当地点。
2.    产生一个异常对象
异常类有两个构造函数:一个default构造函数;一个带String型参数的构造函数,参数的信息可以通过异常类中的各种方法取出。
3.    异常类的结构
     
1)    Error是一些编译期错误或系统错误,一般无需在程序中捕捉到Error异常。
2)    Exception是我们能捕捉到的异常,其中Exception异常又分为RuntimeException和non-RuntimeException两大类异常。

二.    异常的捕捉和处理

1.    异常的捕捉
1.1    通过try…catch就可捕捉异常

  1. import java.lang.RuntimeException;
  2. import java.lang.NullPointerException;
  3. import java.sql.SQLException;
  4. import java.io.IOException;
  5. class TestException{
  6.     public void testSQLException() throws SQLException {
  7.         throw new SQLException();
  8.     }
  9.     public void testIOException() throws IOException {}
  10. }
  11. public class Test{   
  12.     public static void main(String[] args){
  13.         TestException te = new TestException();
  14.         try{
  15.             te.testSQLException();
  16.             te.testIOException();
  17.         }
  18.         catch(SQLException ex){
  19.             System.out.println("catch SQLException in main");
  20.         }
  21.         catch(IOException ex){
  22.             System.out.println("catch IOException in main");
  23.         }
  24.         catch(Exception ex){ //(1)
  25.             System.out.println("catch Exception in main");
  26.         }
  27.     }
  28. }


运行结果为:catch SQLException in main
只有参数类型与异常类型相同或相近的catch会被执行。
1.2    捕捉所有异常
如果想捕捉所有异常,只要捕捉Exception异常就行,如上面代码的(1)处
2.    异常规格(exception specification)
1)    在函数定义时可以声明异常规格。如果一个函数在异常规格中声明了non-RuntimeException异常,那么当调用这个函数时,就一定要捕捉异常规格中的non-RuntimeException异常。

  1. import java.lang.RuntimeException;
  2. import java.lang.NullPointerException;
  3. import java.sql.SQLException;
  4. class TestException{
  5.     //(1)异常规格中声明将抛出RuntimeException异常
  6. public void testRuntime() throws RuntimeException {}
  7. //(2)异常规格中声明将抛出NullPointerException异常
  8. public void testNullPointer() throws NullPointerException {}
  9. //(3)异常规格中声明将抛出non-RuntimeException异常
  10.     public void testNonRunti
点击复制链接 与好友分享!回本站首页
相关TAG标签 思想 笔记
上一篇:Java中static、this、super、final用法简谈(三)
下一篇:认识class Class及其应用
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站