捕获和抛出异常

异常处理机制

快捷键

package com.exception;

public class Test2 {
    public static void main(String[] args) {
        int a=1;
        int b=0;
        //Ctrl+Alt+t 可以快捷 输出 try/catch/finally
        try {
            System.out.println(a/b);
        } catch (Exception e) {
            System.exit(1);//自定义程序结束
            e.printStackTrace();//打印错误的栈信息
        } finally {
        }
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CwsAEoqB-1645451989929)(C:\Users\PC\AppData\Roaming\Typora\typora-user-images\image-20220221191709677.png)]

try catch finally使用

好处:使用后 如果出现异常 程序也会继续进行

package com.exception;

public class Test {
    public static void main(String[] args) {
        new Test().test(1,0);
        int a=1;
        int b=0;
      //假设要捕获多个异常:从小到大!
        try {
            if (b==0){//主动抛出异常 throw throws
                throw new ArithmeticException();//主动抛出异常
            }
            //try监控区域
            System.out.println(a/b);
        }catch (Error e){//catch(想要捕获的异常类型!) 捕获异常  最大的异常写道最后
            System.out.println("程序出现异常,Error");
        }catch (Exception e){
            System.out.println("程序出现异常,Exception");
        }catch (Throwable e){
            System.out.println("程序出现异常,Throwable");
        }
        finally { //处理善后工作
            System.out.println("finally");
        }
        //finally 可以不要finally,但是 假设IO,资源,关闭!
    }

主动抛出异常 throw throws

throw

常用于方法中

package com.exception;

public class Test {
    public static void main(String[] args) {
        new Test().test(1,0);
    }

    public void test(int a,int b){
        if (b==0){//主动抛出异常 throw throws
            throw new ArithmeticException();//主动抛出异常,一般在方法中使用
        }
        System.out.println(a/b);
    }
}

输出结果:

Exception in thread “main” java.lang.ArithmeticException
at com.exception.Test.test(Test.java:34)
at com.exception.Test.main(Test.java:5)

throws

package com.exception;zaishangfasa

//利用try catch finally使用 来解决
public class Test {
    public static void main(String[] args) {
        try {
            new Test().test(1,0);
        } catch (ArithmeticException e) {
            e.printStackTrace();
        }
    }
    //假设这个方法中,处理不了这个异常。解决:方法上抛出异常 
    public void test(int a,int b) throws ArithmeticException{
        if (b==0){//主动抛出异常 throw throws
            throw new ArithmeticException();//主动抛出异常,一般在方法中使用
        }
        System.out.println(a/b);
    }
}
   throw new ArithmeticException();//主动抛出异常,一般在方法中使用
        }
        System.out.println(a/b);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值