重写方法抛出未在接口中定义的已检查异常

时间:2014-12-28 21:41:06

标签: java interface

假设我有一个DataStore接口,其方法为public List<Entity> getEntities()。类SqlDataStore实现此接口。问题在于,当调用SqlDataStore.getEntities()时,可能会抛出SQLException。我无法更改接口以将此已检查的异常添加到方法签名中,因为您还可以编写一个实现XmlDataStore来访问XML文件以获取数据。我该怎么做才能处理实现可以抛出的那些已检查的异常?

1 个答案:

答案 0 :(得分:0)

好的,这就是我缺乏更好的想法所做的。我定义了一个扩展DataStoreException的类RuntimeException。我从接口定义中删除了throws子句。当在其中一个实现DataStore的类中抛出一个已检查的异常时,我只需捕获它并将其包装在DataStoreException中并重新抛出它。