gpt4 book ai didi

java - throws 语句不考虑继承异常

转载 作者:行者123 更新时间:2023-12-01 07:56:25 37 4
gpt4 key购买 nike

我有两个异常(exception):

class MyException1 extends Exception {
--
}

class MyException2 extends MyException1 {
--
}


function invokeValidation() throws MyException2 {

obj1.method() // it throws MyException1
obj2.method() // it throws MyException2
}

上面的代码表示未处理的异常类型MyException1,即使 MyException2 扩展了 MyException1。为什么在 throws 语句中需要 MyException1

最佳答案

如果 obj1.method() 抛出 MyException1,它可能会抛出 MyException1 的子类,该子类不是 MyException2 (或 MyException2 的子类)。因此,声明 invokeValidation() 抛出 MyException2 是不够的。

另一方面,如果您声明 invokeValidation() throws MyException1,那就足够了,因为任何 MyException2 异常也是 MyException1 >.

关于java - throws 语句不考虑继承异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29499612/

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