gpt4 book ai didi

java - 为什么我们必须为不抛出异常的方法处理异常?

转载 作者:行者123 更新时间:2023-12-01 18:47:28 24 4
gpt4 key购买 nike

给定

public class ToBeTestHandleException{

static class A {
void process() throws Exception {
throw new Exception();
}
}

static class B extends A {
void process() {
System.out.println("B ");
}
}



public static void main(String[] args) {
A a = new B();
a.process();
}

}

为什么要在(a.process())行处理异常?B类的方法process根本不抛出异常?PS:这是一个 SCJP 问题。

最佳答案

您已将 B 实例分配给 A 类型的变量。由于 A.process() 引发异常,因此您的代码需要处理这种可能性。

假设您将实例传递给另一个接受 A 的方法:

public void doSomething(A a) {
a.process; // <--- we don't know this is a B, so you are forced to
// catch the exception
}

关于java - 为什么我们必须为不抛出异常的方法处理异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17170583/

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