【发布时间】:2009-06-12 18:24:25
【问题描述】:
我有来自 2 家不同公司的 2 个 API,它们允许我与他们的服务器通信以处理交易。我的任务是为这些 API 创建一个通用接口。我想出了这样的事情:
IServiceProvider <- ServiceProvider <- CompanyAServiceProvider
IServiceProvider <- ServiceProvider <- CompanyBServiceProvider
在CompanyAServiceProvider 中,我正在使用他们提供的 API 与远程服务器进行交互。 A 公司的这个 API 抛出的异常与 B 公司的完全不同。
我可以在本地处理异常,但我认为这并不适合这种情况。
public String purchase(String amount) {
try {
request = new Request( RequestIF.NEW_ORDER_TRANSACTION );
} catch ( InitializationException e ) {
//do something.
}
}
或者我可以向调用者抛出这个异常:
public String purchase(String amount) throws Exception {
request = new Request( RequestIF.NEW_ORDER_TRANSACTION );
}
让调用者只处理Exception,不管那个异常是什么,也不管什么API抛出它。
当我处理 2 组不同的抛出异常时,如何为 2 个不同的 API 编写接口并保持其通用性。我是否正确处理了这个问题?最好的选择是什么?
【问题讨论】: