gpt4 book ai didi

java - 如何将自定义消息附加到异常(在不能抛出异常的重写方法中)?

转载 作者:行者123 更新时间:2023-11-30 01:54:25 24 4
gpt4 key购买 nike

我知道我总是可以在 try/catch block 中捕获异常并像这样抛出 Exception (message, e)

    try {
//...my code throwing some exception
} catch (IndexOutOfBoundsException e) {
throw new Exception("Error details: bla bla", e);
}

简单。但它在重写方法中不起作用,因为它们不能抛出任何异常,而 super 方法不会抛出。

那么,我现在有什么选择?

最佳答案

您始终可以选择未检查异常,即RuntimeException类的子类。这些异常以及 Error 的子类免于编译时检查。

这里 Parent 定义了 throwException() 方法,该方法没有 throws 子句,并且 Child 类覆盖但它会从 catch block 中抛出一个新的 RuntimeException

class Parent{
public void throwException(){
System.out.println("Didn't throw");
}
}
class Child extends Parent{
@Override
public void throwException(){
try{
throw new ArithmeticException("Some arithmetic fail");
}catch(ArithmeticException ae){
throw new RuntimeException(ae.getMessage(), ae);
}
}
}

关于java - 如何将自定义消息附加到异常(在不能抛出异常的重写方法中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54958050/

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