JAVA零基础学习之路(二十二)

异常的处理方式之一:捕获异常

try:

try语句指定了一段代码,该段代码就是异常捕获并处理的范围。在执行过程中,当任意一条语句产生异常时,就会跳过该条语句中后面的代码。代码中可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理。

一个try 语句必须带有至少一个catch 语句块或一个finally 语句块。

注意

当异常处理的代码执行结束以后,不会回到try语句去执行尚未执行的代码。

catch:

每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。

catch捕获异常时的捕获顺序:如果异常类之间有继承关系,先捕获子类异常再捕获父类异常。

finally:

不管是否发生了异常,都必须要执行。

通常在finally中关闭已打开的资源,比如:关闭文件流、释放数据库连接等。

try-catch-finally 语句块的执行过程详细分析:

程序首先执行可能发生异常的try语句块。如果try语句没有出现异常则执行完后跳至finally语句块执行;如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。catch语句块可以有多个,分别捕获不同类型的异常。catch语句块执行完后程序会继续执行finally语句块。finally语句是可选的,如果有的话,则不管是否发生异常,finally语句都会被执行。

【例】异常处理的典型代码(捕获异常)

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

public class Test8 {

    public static void main(String[ ] args) {

        FileReader reader = null;

        try{

            reader = new FileReader("d:/a.txt");

            char c = (char) reader.read();

            char c2 = (char) reader.read();

            System.out.println("" + c +c2);

        } catch (FileNotFoundException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }finally {

            System.out.println("Test8.main.finally");

            try {

                if(reader!=null){

                    reader.close();

                }

            } catch (IOException e){

                e.printStackTrace();

            }

        }

    }

}

异常的处理方式之二:声明异常(throws子句)

1.CheckedException产生时,不一定立刻处理它,可以把异常throws,由调用者处理。

2.一个方法抛出多个已检查异常,就必须在方法的首部列出所有的异常。

【例】测试throws声明式异常处理方式

public class Test03 {

    public static void main(String[] args) throws IOException{

      FileReader reader = null;

      try{

          reader = new FileReader(fileName:"d:/a6.txt");

          char c = (char)reader.read();

          char c2 = (char)reader.read();

          char c3 = (char)reader.read();

          System.out.println(""+c+c2+c3);

      }finally {

          System.out.println("Test02.main.finally");

          try {

              if(reader!=null){

              reader.close();

          }

          } catch (IOException e) {

              e.printStackTrace();

          }

        }

    }

}

分享一个全面学习JAVA的视频教程

以上就是小编为大家整理的关于JAVA的知识。

后续持续更新,还望诸君多多学习,早日上岸!

需要学习具体教程的可以关注私信我哦!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容