gpt4 book ai didi

java - "An exception can be thrown by throw keyword explicitly"的说法是否属实?

转载 作者:行者123 更新时间:2023-12-02 09:25:48 24 4
gpt4 key购买 nike

下面是一道选择题,我认为(A)和(D)都正确,但标准答案是(D)

Which of the following statements is true?

(A) An exception can be thrown by throw keyword explicitly.

(B) An RuntimeException must be caught explicitly.

(C) An uncaught NullPointerException will cause a compilation error.

(D) An overriding method can throw a different exception from its overriden method.

(A)的说法是错误的?我需要帮助。

提前致谢。

最佳答案

throw 关键字允许函数内部出现异常,throws 关键字用于方法签名的 throw 语句中,以说明函数可能抛出哪些异常。例如:

public static void brokenFunc() throws Exception {
throw new Exception();
}

现在,重写方法不能抛出比 super 方法的异常更广泛的异常。唯一一次这是异常(你看到我在那里做了什么吗?)是当它是运行时异常时,因为它们是未经检查的异常。这意味着选项 A 是正确的。

进行编辑以解决答案可能是 D 的问题。

  1. 采访犯了一个错误,意思是扔不是扔
  2. D 指的是未经检查的异常
  3. D 指的是重载方法而不是重写方法
  4. D 表示将异常扩展为不同的异常

如果你用谷歌搜索答案A,你会发现大量的资料表明可以通过 throw 关键字显式抛出异常。没办法说D是标准题。没有任何版本的 Java 支持来自重写方法的不同异常,因为所有检查的异常都会扩展来自 super 方法的异常。扩展异常与 super 异常有is a关系,因此它不是“不同的”。运行时异常不被称为异常只是因为这没有意义。运行时异常是一个异常,但异常不是java中的运行时异常,因此不应在本问题中使用这种情况。这使得采访在某种程度上看起来是错误的,并且没有正确地表达问题。我个人不想在那里工作。

关于java - "An exception can be thrown by throw keyword explicitly"的说法是否属实?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58355598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com