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

4.20JavaCheckedException已检查异常

时间:2021-04-22 15:17:04      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:final   方式   使用方法   alt   ima   try   dex   就是   exce   

4.20JavaCheckedException已检查异常

CheckedException异常特点

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

  • 所有不是RuntimeException的异常,统称为Checked Exception

  • 在编译时就必须做出处理,否则无法通过编译

举例:

IOException、SQLException等

CheckedException异常的处理方式

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

  2. 使用"throws"声明异常

异常捕获图:

技术图片

特点:

  • 三个关键词:try-catch-finally

异常处理过程:

  • 出现异常,系统抛出一个异常

  • 通过它的类型来catch并且处理它---多个catch因为异常类型不一样处理方式也不一样

  • 通过finally语句为异常处理提供一个统一的出口---无论是否遇到异常都会执行finally内的语句

    • finally所指定的代码都要被执行(catch语句可以由多条)

    • fianlly语句最多有一条,根据实际情况可有可无

会用到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是需要关闭的---节省资源(无论是执行完成还是抛出异常)
*/

 

4.20JavaCheckedException已检查异常

标签:final   方式   使用方法   alt   ima   try   dex   就是   exce   

原文地址:https://www.cnblogs.com/JunkingBoy/p/14682632.html

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