java异常

1.定义
异常指的是在程序运行过程中发生的异常事件

2.java异常分类
(1).检查异常:java强制要求要解决或者抛出异常
(2).非检查异常(运行时异常):不必强制去处理可能发生的异常

public static void test(int i) throws UnsupportedEncodingException {
        int j = 5/i;   //这里的i有可能等于0,但是只有在运行的时候才会知道
        System.out.println(j);
        String filePath = "C:\\Users\\MES\\Desktop\\gggg.txt";
        File file =new File(filePath);
        //检查异常  java会强制你处理或者抛出异常
        try {
            InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(filePath),"UTF-8");
        } catch (UnsupportedEncodingException e) {
            throw e;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

3.Throwable
Throwable 是 错误(Error)和 异常(Exception)的父类
java通常不捕获错误;只对Exception
Exception有两个主要的子类IOException和RuntimeException
RuntimeException里面的子类是unchecked异常,既未经检查的异常,Exception下的除此之外的子类都是检查异常
Throwable
4.异常捕获(try/catch)
java中使用try/catch捕获异常,可以嵌套使用

5.Finally
无论是否发生异常都不会影响Finally里面的程序的执行
一般用来关闭或者释放资源

6.异常抛出和声明(throws/throw)
(1)异常抛出(throw):确定会引发异常
(2)异常声明(throws):在定义方法上,代表可能会出现异常
在这里插入图片描述
7.自定义异常
1.先写一个方法,然后继承Throw或者Exception等方法

package throwable;

public class MyThrow extends Exception {
    public MyThrow(){
        super();
        System.out.println("我自己的异常!!!");
    }

}

然后在代码中抛出自己的定义的异常类

public static void test(int i) throws UnsupportedEncodingException, MyThrow {
        String filePath = "C:\\Users\\MES\\Desktop\\gggg.txt";
        File file =new File(filePath);
        try {
            InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(filePath),"UTF-8");
            throw new MyThrow(); //这里抛出自己定义的异常
        } catch (UnsupportedEncodingException e) {
            throw e;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

最后在使用这个方法时,处理这个异常类

public static void main(String arg[]) throws UnsupportedEncodingException {
        try {
            test(0);
        } catch (MyThrow myThrow) {
            myThrow.printStackTrace();
        }
    }

最终结果:

throwable.MyThrow
我自己的异常!!!
at throwable.Dome01.test(Dome01.java:21)
at throwable.Dome01.main(Dome01.java:9)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值