Java - try catch语句

深入try catch

1、catch后面的小括号的类型可以是具体的异常类型,也可以是该异常类的父类型

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

public class ExceptionText2 {
    public static void main(String[] args) {
        try{
            FileInputStream fis = new FileInputStream("C:\\Users\\Administrator\\Desktop\\Java自学\\学习.txt");
            System.out.println("以上出现异常,这里的代码无法执行!");
        }catch(FileNotFoundException e){
            System.out.println("文件不存在!");
        }

        System.out.println("hello world");
    }

}

在这里插入图片描述
也可以写为多态:

        try{
        	//创建输入流
            FileInputStream fis = new FileInputStream("C:\\Users\\Administrator\\Desktop\\Java自学\\学习.txt");
        }catch(IOException e){ //多态:IOException e = new FileNotFoundException();
            System.out.println("文件不存在!");
        }

  try{
            FileInputStream fis = new FileInputStream("C:\\Users\\Administrator\\Desktop\\Java自学\\学习.txt");
        }catch(Exception e){ //多态:Exception e = new FileNotFoundException();
            System.out.println("文件不存在!");
        }

2、catch可以写多个

建议catch的时候,精确的一个一个处理。这样有利于程序的调试

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

public class ExceptionText2 {
    public static void main(String[] args) {
        try{
            //创建输入流
            FileInputStream fis = new FileInputStream("C:\\Users\\Administrator\\Desktop\\Java自学\\学习.txt");
            //读文件
            fis.read();
        }catch(FileNotFoundException e){ //所有异常都走这个分支
            System.out.println("文件不存在!");
        }catch(IOException e){
            System.out.println("读文件报错了!");
        }
    }
}

3、catch后面异常中可以加 | 号(JDK8新特性,7不支持)

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

public class ExceptionText2 {
    public static void main(String[] args) {
        try{
            //创建输入流
            FileInputStream fis = new FileInputStream("C:\\Users\\Administrator\\Desktop\\Java自学\\学习.txt");

            System.out.println(100/0);//这个异常是运行时异常,编写程序时可以处理,也可以不处理

        }catch(FileNotFoundException | ArithmeticException | NullPointerException e){ //所有异常都走这个分支
            System.out.println("文件不存在?数字异常?空指针异常?都有可能!");
        }
    }
}

4、catch写多个的时候,从上到下,必须遵守从小到大

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值