码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA异常机制简述

时间:2015-06-10 12:04:51      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

1.类的继承结构

在JAVA所有的异常对象都是Throwable类的一个子类的实例

技术分享技术分享

Exception包含两个分支,由于程序错误导致的异常属于RuntimeException,比如数组下标越界,空指针等。非程序本身问题的异常属于其他异常,譬如IO引起的异常。

派生自Error类或RuntimeException类的所有异常都属于为检查异常,而其他所有的异常都属于已检查异常,我们只需要为已经常异常指定异常处理器即可,换句话说,原则上,我们只需要为已检查异常编写catch语句。

2.方法异常的声明

方法在其首部应该声明所有可能抛出的异常

String readData(Scanner in)throw EOFException
{
     //...
}

3.异常的抛出

String readData(Scanner in)throw EOFException
{
     while(){
           if(){
                 throw new EOFException();
        }
    }
}    

4.方法的捕获

如果A方法调用了声明了抛出异常的B方法,那么在A方法中要么处理这个异常,要么继续将这个异常抛出。

try{
    //...
}
catch(FileNotFoundException e)
{
    //...
}
catch(IOException e){
   //...
}
finally
{
    file.close();
}

5.finally子句已经带资源的try语句

在上面代码中,我们使用了finally子句来进行文件关闭的操作,这在实际开发过程中是比较常见的需求,由于无论try语句块中是否出现异常,finally子句中的语句都会被执行,所以在finally子句进行文件关闭、流关闭以及数据库关闭等操作是一个比较好的选择,避免了try语句块内外编写重复的代码。

此外,另一种较好的选择是使用带资源的try语句,由于带资源的try会在退出(无论正常退出还是异常发生)时,自动调用res.close(),所以我们在不编写finally语句的情况下依然可以进行文件关闭等操作。

try(Scanner in = new Scanner(new FileInputStrem("/usr/tmp/test"))){
      while(in.hasNext())
              System.out.println(in.next());
}

 

JAVA异常机制简述

标签:

原文地址:http://www.cnblogs.com/shuaiwang/p/4565439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!