api – 我应该何时抛出异常而不是在PHP中返回错误?

前端之家收集整理的这篇文章主要介绍了api – 我应该何时抛出异常而不是在PHP中返回错误?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个API包装器类,这是我做的第一个.
在大多数情况下,它并不太难.
达到我需要处理API返回的错误可能性的程度,但是我应该如何处理它们.

外部文件调用API类,即findVenueByLocationID($locationID);
然后,此函数将构造API调用的URL和方法(POST,GET,DELETE等),并将其传递给名为makeCall的函数.

MakeCall构造完成的URL,将请求发送到服务并传回生成XML.如果API返回错误,则它在返回的XML中.使用函数file_get_contents()调用URL. API具有一定数量错误代码,它将在XML中返回.

据我了解,我应该在函数makeCall中执行以下操作:

>在返回XML之前,检查它是否包含错误代码,如果是,则将其传递给错误处理类以处理错误. (记录并返回客户端版本错误消息)
>在file_get_contents()函数周围添加一个try catch来捕获任何连接错误,即无法访问服务器?

这被认为是最好的做事方式吗?
我是否应该在调用makeCall时添加try catch而不是在file_get_contents内部添加
我应该为XML返回的每个错误抛出异常并使用错误类处理它们吗?

我正在寻找的那种答案还应该包含一个资源的链接,该链接解释了一些围绕使用API​​包装器或类似事件进行错误处理的最佳实践.

提前感谢您的时间和回复.

编辑:
在与我们的CTO交谈之后,当前版本的PHP中的错误是异常,我应该抛出异常并将异常处理留给调用者.请记住,我正在为API实现一个包装类.思考?

您应该首先了解异常和错误之间的区别:错误发生,异常是例外.

例如,键入错误密码(无法登录)的用户会收到错误.当检查密码时数据库不可用时,您将获得异常(并且希望能够优雅地处理该异常).

因此,如果您从第三方获取XML,您可能希望它是有效的.但可能会有错误.如果API给你一个错误(找不到位置),那么你可能也会出错.只有在特殊情况下(你已经硬编码了一个你知道肯定会永远存在的位置),这可能是一个例外.

最微不足道的例外是连接错误:那肯定是错误的.另一个简单的事情是您可能期望的API中的错误,例如“没有新信息”(仅作为示例):这是内部错误.在某些地方你必须画一条线,但在大多数情况下,有点清楚什么是例外,什么只是可能发生的错误.

猜你在找的PHP相关文章