第1类:嵌套模式

package day14;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class Demo0301多个异常异常的嵌套 {
    public static void main(String[] args) {
        String str=null;

        try {
            //多个异常的处理方式一:异常嵌套
            try {
                //str为null,有可能会报空指针异常;
                InputStream is=new FileInputStream(str);
            } catch (NullPointerException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

第二类:分而治之方式

package day14;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class Demo0302多个异常异常的分别处理 {
    public static void main(String[] args) {
        String str = null;

        try {
            //多个异常的处理方式一:异常嵌套
            InputStream is = new FileInputStream(str);
        //针对不同的异常,我分来来处理;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (NullPointerException e) {
            e.printStackTrace();
        }
    }
}

第三类:异常合并方式

package day14;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class Demo0303多个异常异常的合并分开处理 {
    public static void main(String[] args) {
        String str = null;

        try {
            //多个异常的处理方式一:异常嵌套
            InputStream is = new FileInputStream(str);
        //针对不同的异常,捕获的时候,合并到一起,处理的时候,分开;
        } catch (NullPointerException | FileNotFoundException e){
            if(e instanceof NullPointerException){
                System.out.println("空指针异常");
            }else if(e instanceof FileNotFoundException){
                System.out.println("文件没有找到");
            }
        }
    }
}

第四类:大合并方式

package day14;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class Demo0304多个异常异常的合并一次处理 {
    public static void main(String[] args) {
        String str = null;

        try {
            //多个异常的处理方式一:异常嵌套
            InputStream is = new FileInputStream(str);
        //针对不同的异常,捕获的时候,合并到一起,处理的时候,一起处理;
        } catch (Exception  e){
            System.out.println("异常的原因:"+e.getMessage());
        }
    }
}