throws和throw

一、throws

调用方法时,为了能让调用者知道方法是否会发生异常?发生什么异常。针对这种情况,可以使用throws关键字对外声明该方法有可能发生异常,这样调用者在调用方法时,就会知道该方法的异常,从而捕获异常并处理

将关键字 throws 置于方法名后 并在throws后抛出异常

public class cs {
    public void cs(int value) throws Exception{
        //代码块
    }
    public static void main(String[] args) {
        cs cs=new cs();
        try {
            cs.cs(0);
            //可以所有try/catch环绕或继续抛出异常
        }catch (Exception e){
            System.out.println("错误");
        }
    }
}

注:可以同时抛出多个异常

public class cs {
    public void cs(int value) throws NullPointerException,ArithmeticException{
        //代码块
    }
    public static void main(String[] args) {
        cs cs=new cs();
        try {
            cs.cs(0);
            //可以所有try/catch环绕或继续抛出异常
        }catch (ArithmeticException a){
            System.out.println("错误");
        }catch (NullPointerException n){
            System.out.println("错误");
        }
    }
}

二、throw

如果需要在程序中自行抛出异常,则应使用 throw 语句,throw 语句可以单独使用,throw 语句抛出的不是异常类,而是一个异常实例,而且每次只能抛出一个异常实例。

if (true){
            System.out.println("正确");
        }else if(false){
            try {
                //抛出一个异常
                throw new Exception("错误");
                //可以使用try/catch环绕或将异常继续抛出去
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

三、throws和throw的区别 

1、共同点

两者在抛出异常时,抛出异常的方法并不负责处理,顾名思义,只管抛出,由调用者负责处理

2、不同点

(1)、throws用于方法头,表示的只是异常的申明,而throw用于方法内部,抛出的是异常对象

(2)、throws可以一次性抛出多个异常,而throw只能一个

(3)、throws抛出异常时,调用者必须申明抛出异常或者捕获,不然编译报错。而throw的话,可以不申明或不捕获,但编译器不会报错

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值