java--异常与捕获

代码一般都会出现异常,为了保证程序在出现异常之后可以正常执行完毕,就需要进行异常处理
先给大家来一张异常体系结构图如下
在这里插入图片描述
先来制造一个异常:

public class TestDemo2 {
    public static void main(String[] args) {
        System.out.println("1.计算开始前");
        System.out.println("2.进行数学计算:"+10/0);
        System.out.println("3.计算结束后");
    }
}    

0不能被除所以结果如下,出现异常,但是异常之前的语句可以正常执行,产生异常之后直接结束程序,为了保证出现异常之后继续执行,就需要异常处理
在这里插入图片描述
那怎么处理异常呢,请往下看:

public class TestDemo2 {
    public static void main(String[] args) {
        System.out.println("1.计算开始前");
        try {
            System.out.println("2.进行数学计算:" + 10 / 0);
        }catch(ArithmeticException e){
            System.out.println("异常已经被处理");
        }
        System.out.println("3.计算结束后");
    }
}    

在这里插入图片描述
这样异常就被处理了。

注:java.lang.ArithmeticException这个小玩意是在异常信息栈

throws关键字和throw关键字

throws:表示如果出现异常后不希望进行处理,就是用throws抛出。

throw:表示人为进行异常的抛出,之前所有异常类的对象都是由JVM自动进行实例化操作的,如果希望用户手动抛出异常就用throw。

主方法抛出异常

public class TestDemo3 {
    public static void main(String[] args)throws Exception {

            System.out.println(calculate(10,0));
    }
    public  static int calculate(int x,int y)throws Exception{
        return x/y;
    }
}    


这时主方法将异常继续向上抛,交给JVM进行异常的处理,也就是采用默认的方式,输出异常信息,而后结束程序执行

上面用了throws现在试试throw手动抛出

    public static void main(String[] args) {
        try{
            throw new Exception("抛个异常玩玩");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

在这里插入图片描述

最后给大家分享一道面试题:请解释throws和throw的区别
1丶throw用于方法内部,主要表示手工抛出异常(这个对象可以是自己实例化的,也可以是已经存在的)。
2丶throws主要在方法声明上使用,明确告诉用户本方法可能产生的异常,同时该方法可能不处理此异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值