【发布时间】:2011-06-09 08:49:13
【问题描述】:
在我当前的项目中,我使用普通 HTTP 请求查询 PHP,但也通过 AJAX 查询 PHP,有时我返回 JSON 格式的数据,有时返回普通文本。当发生错误时,在正常请求中,您会看到错误消息并可以对其进行处理。另一方面,对于 AJAX 请求,您无法确定是否收到错误或您想要的数据,因为它不会直接显示 - 您只是遇到麻烦,因为您的应用程序将不再工作。
所以我想到了一个错误处理系统。如果发生错误,我最好的想法是发送 500“内部服务器错误”标头,因此在我的 JS 中,当我发送 AJAX-Request 时,我可以简单地检查错误并处理它。
不幸的是,PHP 本身并不会发送这种类型的标头(例如,当您遇到解析错误或代码中的某些内容出错时)。
你能:
a) 如果发生错误,告诉 PHP 发送 500 之类的标头?或者
b) 使用 set_error_handler 发送 500-header 然后调用 PHP 常规错误处理?或者
c) 发生 PHP 错误时,您能否以其他方式发送错误标头?
【问题讨论】:
-
try一些代码,catch错误然后使用header()发送http响应代码。 -
@Arvin:异常不会捕获解析错误。
-
@Toma 为什么要上传和使用有语法错误的 PHP 文件?
-
好吧,我在开发和测试时也遇到了本地错误。
标签: php error-handling