我正在从org.eclipse.emf.transaction.RecordingCommand扩展类RecordingCommand;我需要覆盖受保护的方法doExecute()
,方法定义不包含任何抛出的异常但是我的代码中有选项我有异常并且我想抓住它并将其提升,我应该如何处理一种例外,在这里我抛出了消息e
,但我不确定这是否是正确的方法。
我希望你能理解这个问题,因为我觉得它更复杂只是抛出E
iethrow the exception
@Override
protected void doExecute() {
try {
//my logic
} catch(Exception e) {
throw e;
}
}
答案 0 :(得分:5)
您始终可以从方法中抛出UncheckedException
,无需在throws
子句中声明。
因此,您将异常包装在任何未经检查的异常中,例如扩展RuntimeException
甚至RuntimeException
本身。
try {
//my logic
} catch(Exception e) {
throw new RuntimeException(e);
}
仅仅为了完整起见,为catch
设置一个Exception
块是个坏主意,它将捕获所有异常。相反,您应该catch
阻止您的方法可能抛出的特定类型的异常。