throw 和 throws 的区别

Java 中的异常处理除了包括捕获异常和处理异常之外,还包括声明异常和拋出异常,可以通过 throws 关键字在方法上声明该方法要拋出的异常,或者在方法内部通过 throw 拋出异常对象。

throws 关键字和 throw 关键字在使用上的几点区别如下:

  • throw 关键字用在方法内部,只能用于抛出一种异常,用来抛出方法或代码块中的异常,受查异常和非受查异常都可以被抛出。
  • throws 关键字用在方法声明上,可以抛出多个异常,用来标识该方法可能抛出的异常列表。一个方法用 throws 标识了可能抛出的异常列表,调用该方法的方法中必须包含可处理异常的代码,否则也要在方法签名中用 throws 关键字声明相应的异常。

举例如下:

throw 关键字

java 复制代码
public static void main(String[] args) {
        String s = "abc";
        if(s.equals("abc")) {
            throw new NumberFormatException();
        } else {
            System.out.println(s);
        }
        //function();
}

throws 关键字

java 复制代码
public static void function() throws NumberFormatException{
        String s = "abc";
        System.out.println(Double.parseDouble(s));
    }
    
    public static void main(String[] args) {
        try {
            function();
        } catch (NumberFormatException e) {
            System.err.println("非数据类型不能转换。");
            //e.printStackTrace();
        }
}
相关推荐
Wang's Blog10 小时前
Nodejs-HardCore: 深入解析DBF文件之二进制文件处理指南
开发语言·nodejs
hoiii18710 小时前
基于LSB匹配的隐写术MATLAB实现程序
开发语言·matlab
J2虾虾10 小时前
Java使用的可以使用的脚本执行引擎
java·开发语言·脚本执行
幻云201010 小时前
Next.js指南:从入门到精通
开发语言·javascript·人工智能·python·架构
老马识途2.010 小时前
java处理接口返回的json数据步骤 包括重试处理,异常抛出,日志打印,注意事项
java·开发语言
2***d88510 小时前
Spring Boot中的404错误:原因、影响及处理策略
java·spring boot·后端
c***693010 小时前
Springboot项目:使用MockMvc测试get和post接口(含单个和多个请求参数场景)
java·spring boot·后端
6***A66310 小时前
Springboot中SLF4J详解
java·spring boot·后端
五阿哥永琪10 小时前
Hutool中常用的工具类&真实项目的黄金组合
java
CCPC不拿奖不改名10 小时前
网络与API:从HTTP协议视角理解网络分层原理+面试习题
开发语言·网络·python·网络协议·学习·http·面试