gpt4 book ai didi

java - 给定方法签名 A bar(B q) throws C,以下哪项将无法编译?

转载 作者:太空宇宙 更新时间:2023-11-04 13:55:28 26 4
gpt4 key购买 nike

public class A extends Exception {....}
public class B extends A {....}
public class C extends RuntimeException {....}

给定方法签名 A bar(B q) 抛出 C,以下哪项将无法编译?

A.

A m() throws C {
return bar(new B());
}

B.

m() {
return bar(new B());
}

C.以上所有内容都将编译。

答案是C。B可能有错别字,不确定。我不明白这个问题,从概念上讲,它在问什么等等。我得到 A 是 B 的父类(super class),而 C 单独作为 RuntimeException,因此在编译时不会检查它?
我知道该方法的内部必须是 B 时间异常,这在两个答案中都有效。有人可以帮忙解释一下为什么这两个都可以编译吗?

最佳答案

C 是一种运行时异常。您不需要声明运行时异常,它们会被编译器忽略。

Here's一个很好的入门解释。

声明异常并不意味着一定会有异常。这只是意味着我们应该为抛出异常的可能性做好准备。

选项B不会编译,但不是因为异常。它不会编译,因为没有返回类型。选项 A 声明了 A 类型的返回。

关于java - 给定方法签名 A bar(B q) throws C,以下哪项将无法编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29872669/

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