- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是一道选择题,我认为(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 的问题。
如果你用谷歌搜索答案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/
我是一名优秀的程序员,十分优秀!