捕获和抛出异常

本文介绍了Java中的异常处理机制,包括try-catch-finally关键字的使用,如何捕获和处理ArithmeticException,以及如何通过throws关键字在方法中抛出异常。示例代码展示了如何在遇到除数为0的情况时进行异常处理,以及多层次catch块的使用和异常的向上抛出。
摘要由CSDN通过智能技术生成

抛出异常

捕获异常

异常处理五个关键字:

     try   catch   finally   throw   throws

举例:

先写一段异常代码

public class Application{
    public static void main(String args[]){
        int a = 1;
        int b = 0;
        System.out.println(a/b);
    }
}

正常情况下报错:

 

表示除数不能为0

处理下异常:

public class Application{
    public static void main(String args[]){
        int a = 1;
        int b = 0;
        try{    //try监控区域,在其中出现异常都可以捕获
            System.out.println(a/b);
        }catch (ArithmeticException e){   //catch(想要捕获的异常类型)捕获异常
//Throwable最大
            System.out.println("程序出现异常,变量b不能为0");
        }finally{    //finally最后处理善后工作,无论出不出异常,finally都会被执行
            //可以不要finally  假设IO,资源,关闭!
            System.out.println("finally");
        }
    }
}

输出:

 

 写多个catch类似于for为层层递进,但要注意大的类型必须在小的类型的下面

public class Application{
    public static void main(String args[]){
        int a = 1;
        int b = 0;
        try{
            System.out.println(a/b);
        }catch (Error e) {
            System.out.println("Error");
        }catch (Exception e){
            System.out.println("Exception");
        }catch (Throwable t){
            System.out.println("Throwable");
        } finally{
            System.out.println("finally");
        }
    }
}

输出:

 

 异常的抛出(是抛出给上一级去检测,俗称甩锅xxx)

public class Application{
    public static void main(String args[]){
        //假设这方法中,处理不了这个异常,方法上抛出异常
        public void test(int a,int b) throws ArithmeticException{
            if (b==0){
                throw new ArithmeticException();   //主动的抛出异常,一般在方法中使用
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值