• Java基础:throw和throws的详解


    总结来说,throw是用来抛出一个具体的异常实例,而throws是用来声明方法可能会抛出哪些类型的异常,是对调用者的一种通知和要求。

    1. throw
    • 作用: throw关键字用于在方法体内实际抛出一个异常实例。当程序运行到throw语句时,指定的异常会被创建并抛出,立即终止当前方法的执行,并将控制权转移给包含该方法的调用者的异常处理机制。
    • 使用时机: 当检测到某种错误条件或异常情况时,在方法内部使用throw来抛出一个异常对象,这个对象可以是系统预定义的异常类的实例,也可以是自定义异常类的实例。
    • 特点: throw总是伴随着一个异常实例,且其后的代码不会被执行,因为一旦抛出异常,当前的代码路径就会被中断。
    2. throws
    • 作用: throws关键字用于声明方法可能抛出的异常类型,它出现在方法签名之后。这告知调用者该方法执行时可能会遇到的异常情况,要求调用者要么处理这些异常(使用try-catch语句块),要么继续向上层方法抛出这些异常。
    • 使用时机: 当一个方法无法处理或不打算处理某些异常时,可以在方法声明中使用throws来声明这些异常。这样做可以强制调用者意识到潜在的异常风险并做出相应的处理准备
    • 特点: throws后面可以跟随一个或多个异常类名,用逗号分隔,表示该方法可能抛出多种类型的异常。并且,throws声明并不意味着异常一定会被抛出,它只是声明了一种可能性。
    3. 为什么有时候异常必须用throws声明而有时候不用?

    如图

    (图一)


    (图二)

    为什么会出现这种情况呢?其实了解过Java异常的人都知道,异常分为两大类,一类是运行时异常,一类是非运行时异常。运行时异常只能在运行时识别,所以编译器无法识别运行时异常,就算不throws出异常也是能编译通过的,而非运行时异常如果不throws出来,编译器就会识别到并报错。


    __EOF__

  • 本文作者: 救苦救难韩天尊
  • 本文链接: https://www.cnblogs.com/gilbertdu/p/18260965
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    计算机组成原理笔记(王道考研) 第二章:数据的表示和运算2
    uni-app 之 v-on:click点击事件
    QT6.6下android编译及调用自定义so库方法
    LLMOps — 使用 BentoML 为 Llama-3 模型提供服务
    基于AI算法+视频监控技术的智慧幼儿园解决方案
    Python爬虫 教程:IP池的使用
    深度讲解TS:这样学TS,迟早进大厂【03】:简单的例子 helloworld
    5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库
    kaldi 报错:data/lang/L_disambig.fst is not olabel sorted
    vue中如何全屏显示系统内容
  • 原文地址:https://www.cnblogs.com/GilbertDu/p/18260965