我正在从 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/