gpt4 book ai didi

java - 抛出异常形式覆盖方法,没有在组织方法接口(interface)上定义的异常

转载 作者:行者123 更新时间:2023-11-29 08:00:14 27 4
gpt4 key购买 nike

我正在从 org.eclipse.emf.transaction.RecordingCommand 扩展 RecordingCommand 类;我需要覆盖 protected 方法 doExecute(),方法定义不包含任何要抛出的异常,但在我的代码中有一个选项,我有异常,我想捕获它并引发它,我应该如何处理这种异常,在这里我抛出消息 e 但我不确定这是正确的方法。

我希望你能理解这个问题,因为我认为只抛出 E 更复杂

即抛出异常

@Override 
protected void doExecute() {
try {
//my logic
} catch(Exception e) {
throw e;
}
}

最佳答案

您始终可以从方法中抛出 UncheckedException,而无需在 throws 子句中声明。

因此,您将异常包装在任何未经检查的异常中,例如扩展 RuntimeException甚至 RuntimeException 本身。

try {
//my logic
} catch(Exception e) {
throw new RuntimeException(e);
}

为了完整起见,为Exception 设置一个catch block 并不是一个好主意,它将捕获所有异常。相反,您应该为您的方法可能抛出的特定类型的异常设置 catch block 。

关于java - 抛出异常形式覆盖方法,没有在组织方法接口(interface)上定义的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14870288/

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