“全栈2019”Java异常第十章:throw与throws区别详解

902 阅读3分钟
原文链接: www.toutiao.com

难度

初级

学习时间

10分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

友情提示

  • 本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。
  • 本章内容针对零基础或基础较差的同学比较友好,可能对于有基础的同学来说很简单,希望大家可以根据自己的实际情况选择继续看完或等待看下一篇文章。谢谢大家的谅解!

1.throw与throws定义不同

throw定义:

throw关键字作用是抛出一个异常。

throws定义:

throws关键字用于声明在当前定义的成员方法中所有需要抛出的异常。

2.throw后面跟的是异常对象;throws后面跟的是异常类型

throw:

“全栈2019”Java异常第十章:throw与throws区别详解

throws:

“全栈2019”Java异常第十章:throw与throws区别详解

3.throw作用在作用域内部;throws作用在成员方法上

throw(作用域有很多,其中包括静态代码块、实例代码块、if语句、for语句...等等):

“全栈2019”Java异常第十章:throw与throws区别详解

类中成员方法中抛异常

“全栈2019”Java异常第十章:throw与throws区别详解

静态代码块中抛异常

“全栈2019”Java异常第十章:throw与throws区别详解

实例代码块中抛异常

throws:

“全栈2019”Java异常第十章:throw与throws区别详解

方法

4.throw抛出的非运行时异常需要throws声明在方法上

throw和throws之间还是有配合的,比如throw抛出的异常,可以try-catch,也可以使用throws声明在方法上。

“全栈2019”Java异常第十章:throw与throws区别详解

上述例子即演示了当抛出非运行时异常时,我们采用throws这种方式将其处理。

注:非运行时异常即继承自Exception的异常。

5.throw抛出运行时异常不需要throws声明在方法上

上一小节演示的当抛出非运行时异常时,我们必须在try-catch和throws之间二选一,上节选择的是throws。

本节演示当我们抛出运行时异常时,不强制你try-catch或throws。

“全栈2019”Java异常第十章:throw与throws区别详解

上述例子即演示了当抛出运行时异常时,我们不需要try-catch或throws。

注:运行时异常即继承自RuntimeException的异常。

总结

  1. throw与throws定义不同
  2. throw后面跟的是异常对象;throws后面跟的是异常类型
  3. throw作用在作用域内部;throws作用在成员方法上
  4. throw抛出的非运行时异常需要throws声明在方法上
  5. throw抛出运行时异常不需要throws声明在方法上

至此,Java中throw与throws区别相关内容讲解先告一段落,更多内容请持续关注。

答疑

如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。

上一章

“全栈2019”Java异常第九章:throws关键字详解

下一章

“全栈2019”Java异常第十一章:重写方法时只能抛出父类异常子集

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号Gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号Gorhaf,回复“Java学习小组”。

全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

“全栈2019”Java异常第十章:throw与throws区别详解

版权声明

原创不易,未经允许不得转载!