throw和throws区别

本文详细介绍了Java中`throws`和`throw`关键字的区别。`throws`用于在方法声明中指定可能抛出的异常,提示调用者进行异常处理;而`throw`则是手动抛出异常,中断方法执行。通过示例代码展示了如何使用这两个关键字,并强调了异常处理的重要性。
摘要由CSDN通过智能技术生成

文章目录

throws

throws ,就是在方法声明处使用的用来抛出异常的语句,它抛出的异常来源于系统自动生成的异常对象。一个方法必须声明所有可能抛出的检查型异常(java将派生于Error类或RuntimeException类的所有异常称为非检查型异常,所有其他的异常称为检查型异常)(摘自《Java核心技术卷I》)

throw

throw ,手动抛出异常,它抛出的异常是你手动生成的。
为什么要手动生成异常并抛出?
因为,一旦方法抛出了异常,这个方法就不会返回到调用者。也就是说,不必操心建立一个默认的返回值或错误码(摘自《Java核心技术卷I》)。

理解

两者区别非常之大,可以说是没有多少相似性。
throws主要是方法处声明可能抛出的异常,实际上有没有异常未知,但存在抛出异常的风险,因此,方法的调用者需要进行相关异常处理。

throw方法是抛出一个异常,是自己亲手写的明明白白抛出的异常,抛出异常后,除非进行异常捕获,否则该方法后续的代码不再执行,可以理解为抛异常是一种特殊的return。

简单测试理解一下(//表示编译时要求因为“无法访问的语句”而注释掉的语句)

public class Test {
    public static void main(String[] args) throws NullPointerException {
        String s="";

        try {
            throw new Exception();
//            System.out.println("1");
        }
        catch (Exception e){
            e.printStackTrace();
        }
        System.out.println("2");
        if(s == null){
            //抛出异常
            throw new NullPointerException();
//            System.out.println("3");
        }else{
            System.out.println(s);
        }
        System.out.println("4");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值