72、异常处理的第二种方式,try...catch自己处理异常

异常处理的第二种方式,try...catch自己处理异常
一、格式:
    try{
        可能产生的异常代码
    }catch(定义一个异常的变量,用来接收try中抛出的异常对象){
        异常处理的逻辑代码块,怎么处理异常。
    }
    catch(异常类名 变量名){
    }
二、注意:
    1、try中可能会抛出多个异常对象,那么久可以使用多个catch来处理这些异常对象
    2、如果try中产生了异常,那么就会执行catch中的异常处理逻辑,执行完毕catch中的处理逻辑,继续执行try...catch之后的代码。
    如果try中没有产生异常,那么就不会执行catch中的异常处理逻辑,执行完毕try中的代码,继续执行try...catch之后的代码
三、throwable包含几个异常处理的方法:
    String getMessage() 返回次throwable的简短描述
    String toString() 返回此throwable的详细消息字符串
    void printStackTrace() JVM打印异常对象默认使用此方法,打印异常信息最全面。

四、举例

1、String的方法equals(“用语对比字符串”)用于判断字符串是否和某个字符串一样
 2、String的方法endsWith(“用于判断的字符串”)用于判断某个字符串末尾是否是某个字符串。

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

public class Demo04TryThrow{
    public static void main(String[] args) /*throws IOException */{
        //readFile("c:\\a.txt");
        //readFile("c:\\b.txt");
        try{
            readFile("c:\\b.txt");
        }catch (IOException e)
        {
            System.out.println(e.getMessage());
            System.out.println(e.toString());
        }
        System.out.println("退出");
    }

    /*
    FileNotFoundException是编译异常,抛出的异常就必须处理,可以使用throws继续声明抛出让调用处理
      抛出多个异常时,由于有IOException异常,而FileNotFoundException是IOException的子类,因此
      可以只写IOException
     */
    private static void readFile(String fileName) throws IOException {
        if (!fileName.equals("c:\\a.txt")){
            throw new FileNotFoundException("传递的文件路径不是c:\\a.txt");
        }
        System.out.println("路径没有问题,继续!");

        if (!fileName.endsWith(".txt")){
            throw new IOException("文件格式不对");
        }
    }
}

输出:

传递的文件路径不是c:\a.txt
java.io.FileNotFoundException: 传递的文件路径不是c:\a.txt
退出

 

你可能感兴趣的:(01_JAVA)