在大多数情况下,它并不太难.
达到我需要处理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中的错误,例如“没有新信息”(仅作为示例):这是内部错误.在某些地方你必须画一条线,但在大多数情况下,有点清楚什么是例外,什么只是可能发生的错误.