【发布时间】:2014-12-28 21:41:06
【问题描述】:
假设我有一个接口DataStore,它的方法是public List<Entity> getEntities()。 SqlDataStore 类实现了这个接口。问题是,当调用 SqlDataStore.getEntities() 时,可能会抛出 SQLException。我无法更改接口以将此已检查异常添加到方法签名中,因为您还可以编写一个实现XmlDataStore,它正在访问 XML 文件以获取数据。我应该如何处理实现可能抛出的检查异常?
【问题讨论】:
-
将它们包装在未经检查的异常中。
-
是的,或者更好的是,将它们包装在您的界面将允许您抛出的任何类型的异常中。
-
我不明白这个问题。您可以更改接口以将检查的异常添加到方法签名中。
XmlDataStore中的方法不必声明它会抛出异常。 -
@pbabcdefp 这样我就必须添加实现可能抛出的每种异常类型。这是一个常见的解决方案吗?
-
@SotiriosDelimanolis 你的意思是定义我自己的异常类型,比如
DataStoreException,其中包含对抛出异常的引用并将这个添加到接口方法中?