投掷与投掷有什么区别。 抛出 Java

已发表: 2013-07-23

投掷与投掷有什么区别。抛出 Java

一个声明,另一个做

Java 中有五个与异常处理相关的关键字,例如try、catch、finally、throw 和 throws 。 除了final、finally 和 finalize之间的区别之外, throw 与 throws 是 Java 面试中经常被问到的问题之一。

  • throw 关键字用于从 Java 中的任何方法或静态块中抛出异常,而throws 关键字用于方法声明,表示该方法可能抛出的异常。 它们不可互换。
  • 如果任何方法抛出如下示例所示的已检查异常,则调用者可以通过捕获它来处理此异常,也可以通过在方法声明中声明另一个 throws 子句来重新抛出它。
  • Throw 子句可用于您认为需要向调用方法抛出特定异常的任何代码部分。

了解 Java 异常:

如果一个方法抛出异常,它应该被一个 try catch 块包围以捕获它,或者该方法应该在其签名中包含 throws 子句。 如果签名中没有 throws 子句,Java JVM 编译器不知道如何处理异常。 throws 子句告诉编译器这个特定的异常将由调用方法处理。

下面是一个非常简单的示例,它解释了 Java 中 Throw、Throws、Try、Catch、Finally 块的行为。

结果:

空指针异常 - Crunchify

现在只需将第 45 行和第 46 行替换为以下行即可查看以下结果:

新结果:

您可能感兴趣的所有 Java 教程的列表。

关于例外的额外提示:

  • 当抛出异常时,正常的程序执行会立即分支。
  • 必须捕获或转发已检查的异常。 这可以在try ... catch语句中或通过在方法定义中定义异常来完成。
  • 异常由关联异常类与抛出异常的类或超类匹配的第一个catch块捕获。
  • 如果在异常链中没有找到匹配的catch块,则终止包含抛出异常的线程。
  • 无论是否捕获到异常,都会执行try ... catch语句之后的finally块。
  • 即使对于未捕获的异常,在finally块内返回也会中断调用者的异常链。