模式让客户有选择地处理Java中的错误

时间:2012-08-17 19:36:07

标签: java exception-handling

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

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

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

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

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

我想听听您的意见,也许会有更多创意。

干杯

2 个答案:

答案 0 :(得分:3)

目前,Java API的公认惯例是使用未经检查的异常,因此客户端不需要更改它的内部代码,只是为了将API的异常容纳到客户端的代码库中。

相反,如果您使用未经检查的异常,除了您真正需要处理异常的地方外,您将保持代码不变。

以下是关于罗伯特·马丁的“清洁代码”一书的幻灯片,该书讨论了错误处理最佳实践:slides

答案 1 :(得分:1)

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