4.20JavaCheckedException已检查异常

时间:2021-04-22 15:17:04   收藏:0   阅读:0

4.20JavaCheckedException已检查异常

CheckedException异常特点

RuntimeException是在运行是才会发生的异常

举例:

IOException、SQLException等

CheckedException异常的处理方式

  1. 使用"try/catch"捕获异常

  2. 使用"throws"声明异常

异常捕获图:

技术图片

特点:

异常处理过程:

会用到IO流的知识

实例:

package com.exception;
?
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
?
public class Test02 {
   public static void main(String[] args) {
?
       FileReader reader = null;
       /*要么抛出,要么try...catch*/
       try{
           reader = new FileReader("c:/a.txt");
?
           /*测试输出*/
           System.out.println("Step1");
//           char c1;
//           try {
//               /*有了这个对象就开始读字符---使用方法*/
//               c1 = (char) reader.read(); //这个方法还需要抛出一个异常去处理
//           }catch (IOException e){
//               //TODO Auto-generated catch block
//               System.out.println();
//           }
//           /*
//           可以外面一个try里面再一个try
//           也可以再外围再补获一次异常
//             */
           char c1 = (char) reader.read();
           System.out.println(c1);
?
      }catch (FileNotFoundException e){
?
           /*测试输出*/
           System.out.println("Step2");
           //TODO Auto-generated catch block
           e.printStackTrace();
      }catch (IOException e){
           e.printStackTrace();
      }finally {
?
           /*测试输出*/
           System.out.println("Step3");
//           reader.close(); //因为之前只在try里面声明了对象,所以出了try代码块就不能使用了
           /*
           close抛出异常也需要我们捕获异常
           所以在finally内部还要写一层try...catch
           然后加一个判断
           这就是一个比较完善的try...catch处理流程
            */
           try {
               if (reader != null){
                   reader.close();
              }
          }catch (IOException e){
               e.printStackTrace();
          }
      }
  }
}
/*
FileNotFoundException和IOException有父类和子类的关系
一般有父子关系的类都是---子类异常在前父类异常在后
因为在捕获异常的时候无论是FileNotFoundException和IOException都会到IOException中
因为子类的类型也属于父类里面
也可以处理
Reader是需要关闭的---节省资源(无论是执行完成还是抛出异常)
*/

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!