Java 异常处理机制(一)

原创 2015年11月19日 18:58:24

Java 异常处理(一)

1、try和catch语句

    (1)try语句用于指明可能产生异常的代码段,而catch语句则紧跟try语句之后,用于捕捉异常,并进行相应的异常   

             处理。

int a;
int b=0;
int c=1;
try{
  a=c/b;
}catch(ArithmeticException e){
  System.out.println("算术异常处理!");
}


 

    (2)一个try语句可以匹配多个catch语句,系统会依照先后顺序依次对其进行处理。

            警告:处理子类异常的catch语句必须位于父类异常catch语句之前,否则子类异常catch语句将无法响应。

                       比如:IOException和Exception就存在继承的关系

//下面的catch语句的层次关系是不可取的
int a;
int b=0;
int c=1;
try{
  a=c/b;
}catch(Exception e){     //  1 父类异常处理
  System.out.println("异常处理!");
}catch(ArithmeticException e){   //2 子类异常处理
  System.out.println("算术异常处理!");
}


      (3) Java还提供多异常捕获功能,即一个catch语句捕捉多种的异常,不同异常之间以“|”隔开。

int a;
int b=0;
int c=1;
try{
  a=c/b;
}catch(ArithmeticException|ClassCastException e){ 
  System.out.println("异常处理!");
}


2、finally语句

    (1) 配合try{ ... }catch{ ... }使用,主要用于执行一些必要的语句(无论是否产生异常),例如:关闭数据库、

             关闭数据流等操作,以释放宝贵的系统资源。

//下行可能产生异常,例如在D:/Java/命令行示例/a.txt文件不存在的情况下
//FileInputStream 类 用于处理以文件为输入源的数据流
    FileInputStream fin=new FileInputStream("D:/Java/命令行示例/a.txt");
    try{
      size=fin.available();//判断可读取的字节数
      System.out.println("file size="+size);  
    }catch(FileNotFoundException e){
      System.out.println("File not found!");
      throw e;
      
    }finally{
      fin.close();
    }

     (2)即使try语句块要通过return语句退出,Java也会保证执行finally代码段。

3、throw语句和throws语句

     (1)throw语句用于之处程序当前行存在的异常,其后面的代码将不予执行;

              throws语句出现在方法头的后面,用于抛出方法可能会出现的异常给其调用者。

     (2)两者都是“消极”的处理异常的方法,真正处理异常的是改方法的调用者。

class showFile{
  void showInfo() throws IOException{
    int size=0;
//下行可能产生异常,例如在D:/Java/命令行示例/a.txt文件不存在的情况下
//FileInputStream 类 用于处理以文件为输入源的数据流
    FileInputStream fin=new FileInputStream("D:/Java/命令行示例/a.txt");
    try{
      size=fin.available();//判断可读取的字节数
      System.out.println("file size="+size);  
    }catch(FileNotFoundException e){
      System.out.println("File not found!");
      throw e;
      
      System.out.println("异常抛出后!");//这一句将不予执行
      
    }finally{
      fin.close();
    }
  }
}


 


 

 

 

 

 

    

浅析JAVA异常处理机制.pdf

  • 2010年05月27日 13:58
  • 32KB
  • 下载

JAVA的异常处理机制

  • 2012年04月17日 18:29
  • 316KB
  • 下载

java web项目整体异常处理机制

java web项目整体异常处理机制 转自:http://blessht.iteye.com/blog/1073599 在实际的j2ee...

深入理解java异常处理机制

  • 2014年12月15日 09:53
  • 143KB
  • 下载

java异常处理机制

  • 2013年12月22日 22:14
  • 793KB
  • 下载

java web项目整体异常处理机制

在实际的j2ee项目中,系统内部难免会出现一些异常,如果把异常放任不管直接打印到浏览器可能会让用户感觉莫名其妙,也有可能让某些用户找到破解系统的方法。 出来工作一年时间了,我也大概对异常处理有了...

Java异常处理机制的研究

  • 2012年07月04日 16:49
  • 58KB
  • 下载

黑马程序员--java基础--对象的多态、内部类、匿名内部类、异常处理机制

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

深入理解java异常处理机制(记得看原文评论,1楼评论解决问题或者本文PS说明)

转载:http://blog.csdn.net/hguisu/article/details/6155636 目录(?)[-]  1 引子 2JAVA异常 4处理异常机制 ...
  • DADADIE
  • DADADIE
  • 2015年04月13日 20:28
  • 865

Java异常处理机制难点解惑-用代码说话

是否需要看这篇文章?下面的例子中,如果正常执行返回值多少? 如果出现了ArithmeticException返回值多少? 如果出现非ArithmeticException(如NullPointerEx...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 异常处理机制(一)
举报原因:
原因补充:

(最多只允许输入30个字)