【发布时间】:2011-08-28 03:52:42
【问题描述】:
我正在开发一个 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 中添加一个 try catch? 我应该为 XML 返回的每个错误抛出异常并使用错误类处理它们吗?
我正在寻找的答案还应该包含一个资源链接,该资源解释了一些关于使用 API 包装器或类似东西处理错误的最佳实践。
提前感谢您的时间和回复。
编辑: 在与我们的 CTO 交谈后,当前版本的 PHP 中的错误是异常,我应该抛出异常并将异常的处理留给调用者。请记住,我正在为 API 实现一个包装类。想法?
【问题讨论】:
-
file_get_contents()如果无法检索或读取资源,则会触发警告,因此 try...catch 不会帮助您。如果使用Zend_Http_Client之类的类,则可以更轻松地拦截故障。
标签: api exception-handling error-handling php