我正在编写DefaultHttpClient的包装器来处理一些容易出错的配置选项。 例如,我将预先配置所有内容以正确处理UTF-8并干净地关闭连接。
当返回非200时,我想到了客户端为特定状态代码注册处理程序然后调用它。
我会提供一些默认处理程序来处理简单的情况。
这是一个干净的API的好模式吗?如果我抛出异常,客户端必须处理可能根本不会发生的情况,因为我必须为每个可能的HTTP状态代码(或大多数)抛出异常。
我喜欢处理程序的是我可以提供一些可能被覆盖的“默认处理程序”......
我想听听您的意见,也许会有更多创意。
干杯
答案 0 :(得分:3)
目前,Java API的公认惯例是使用未经检查的异常,因此客户端不需要更改它的内部代码,只是为了将API的异常容纳到客户端的代码库中。
相反,如果您使用未经检查的异常,除了您真正需要处理异常的地方外,您将保持代码不变。
以下是关于罗伯特·马丁的“清洁代码”一书的幻灯片,该书讨论了错误处理最佳实践:slides。
答案 1 :(得分:1)
我不会为每个http错误代码创建不同的异常。最多创建一个或两个常规异常,并将确切的错误代码存储为异常的一部分。这样,如果客户端代码只想记录或忽略它们,或者它可以根据错误代码获得更多细节。