我有两个来自两个不同公司的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编写接口并保持通用。我正确处理这个问题吗?什么是最好的选择?
是的,创建你自己的Exception子类。确保您支持将Exception作为参数的Exception构造函数。您的API可以创建指定给此API的用户的异常,并且可以适当地包装来自您使用的第三方API的异常。这是最佳做法。 – Eddie 2009-06-12 18:32:22