0

我正在围绕 DefaultHttpClient 编写一个包装器来处理一些容易出错的配置选项。例如,我将预先配置一切以正确处理 UTF-8 并干净地关闭连接。

当返回非 200 时,我想到了客户端为特定状态代码注册一个处理程序,然后调用它。

我会提供一些默认处理程序来处理简单的情况。

这是一个干净的 API 的好模式吗?如果我抛出异常,客户端必须处理可能根本不会发生的情况,因为我必须根据可能的 HTTP 状态代码(或大多数)抛出异常。

我喜欢处理程序的一点是我可以提供几个可能被覆盖的“默认处理程序”......

我想听听你的意见,也许会得到一些更有创意的想法。

干杯

4

2 回答 2

3

Currently, accepted practice for Java APIs is to employ unchecked exceptions, so client won't need to change it's internal code just to accommodate API's exceptions into client's codebase.

Instead, if you use unchecked exceptions, you'll save your code unchanged except the places where you really need to handle exceptions.

Here're slides about Robert Martin's "Clean code" book which talk about error handling best practices: slides.

于 2012-08-17T19:40:16.483 回答
1

我不会为每个 http 错误代码创建不同的异常。最多创建一两个一般异常并将准确的错误代码存储为异常的一部分。这样,如果客户端代码只想记录或忽略它们,它可以,或者它可以根据错误代码获取更多详细信息。

于 2012-08-17T19:38:26.780 回答