• 目录

异常捕获

阅读量: 137 编辑

异常捕获

一、异常捕获介绍

  • try-catch 来捕获异常

  • 一个 try 可以多个 catch 配合使用

  • 不需要捕获异常的代码可以放在 try-catch 中,也可以不放

  • 代码块中抛出哪个异常,就执行异常对应的代码块,就是对应的 catch

  • finally 无论如何都会执行

二、语法

try{
    // 可能会抛出特定异常的代码段
    
}catch(ExceptionType exception){
    // 如果Exception 被抛出,则执行这段代码
    
}catch(ExceptionType otherException){
    //如果另外的异常otherException被抛出,则执行这段代码
    
} [finally{
    //无条件执行的语句
    
}]

三、代码实战

代码的详细解读,可以参考视频教程

package com.qicong.gj.c21;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * User: 祁大聪
 */
public class S21 {

    public static void testArr(){
        try{
            int[] arr = {1,2,3,4,5,6};
            System.out.println(arr[2]);//下标最大是5
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            System.out.println("finally is called");
        }
        System.out.println("==================");
    }

    public static void testFile() {
        // ctrl + alt + t
        FileInputStream fis = null;
        try {
            String filePath = "E://a.log";
            fis = new FileInputStream(filePath);
            byte[] b = new byte[1024];
            while(fis.read(b) != -1){

            }
            fis.close();
        }catch (FileNotFoundException e) {
            e.printStackTrace();
            System.out.println("-------------------- FileNotFoundException");
        }  catch (IOException e) {
            e.printStackTrace();
            System.out.println("------------------------- IOException");
        } finally {
            System.out.println("finally is called");
        }
        System.out.println("==================");
    }

    public static void main(String[] args) {
        testFile();
    }
}

  • 目录