Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模式,让客户端有选择地处理Java中的错误_Java_Exception Handling - Fatal编程技术网

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

模式,让客户端有选择地处理Java中的错误,java,exception-handling,Java,Exception Handling,我正在围绕DefaultHttpClient编写一个包装器来处理一些容易出错的配置选项。 例如,我将预先配置一切以正确处理UTF-8并干净地关闭连接 当返回一个non-200时,我考虑客户端注册一个特定状态代码的处理程序,然后调用它 我将提供一些默认处理程序来处理简单的案例 对于干净的API来说,这是一个好模式吗?如果我抛出异常,客户端必须处理可能根本不会发生的情况,因为我必须根据可能的HTTP状态代码(或most)抛出异常 我喜欢处理程序的一点是,我可以提供两个可能被覆盖的“默认处理程序” 我

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

当返回一个non-200时,我考虑客户端注册一个特定状态代码的处理程序,然后调用它

我将提供一些默认处理程序来处理简单的案例

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

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

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


干杯

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

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

目前,Java API的公认做法是使用未检查的异常,因此客户机不需要更改其内部代码,只需将API的异常容纳到客户机的代码库中即可

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


下面是关于Robert Martin的“干净代码”一书的幻灯片,该书讨论了错误处理最佳实践:。

目前,Java API的公认实践是使用未检查的异常,因此客户端不需要更改其内部代码,只需将API的异常容纳到客户端的代码库中即可

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


以下是有关Robert Martin的“干净代码”一书的幻灯片,该书讨论了错误处理最佳实践:。

您应该接受一些答案。我想我会尽量兼顾这两个答案。我可能会对严重错误(如500)使用检查异常,并为404、400和406添加一些未检查的异常。您应该接受一些答案。我想我会尝试兼顾这两个答案。我可能会对严重错误(如500)使用检查异常,并为404、400和406添加一些进一步的未检查异常。