php - 如何将异常对象转换为stdClass?

标签 php javascript ajax json exception

伙计们。我正在使用ajax通过php加载一堆数据。有时异常会未被捕获。这会生成一些 javascript 无法解析的错误消息(因为它需要 json)。这会使页面崩溃,这不太酷。所以我正在构建一个自定义异常处理程序。基本上它应该只是 json_encode Exception 对象。但 json 只适用于 stdClass 类型的对象。所以这是实际的问题:

如何将异常对象转换为 stdClass,以便我可以对其进行 json_encode?我已经尝试了所有我能想到的天真的东西,比如

(stdClass) $ex(Object) ((Array) $ex)

是的,我知道一开始就不应该捕获异常,但它更像是一个开发功能。它使调试不再那么痛苦;-)

谢谢!

最佳答案

  1. PHP 不支持对象转换。
  2. 在这种情况下使用异常处理程序是一个可怕的想法,特别是当您所要做的就是:

    try {
        // Current code here, including other try-catch blocks
    } catch (Exception $e) {
        // handle uncaught exception
    }
    
  3. 当发生错误时,您应该正确设置响应。将响应代码设置为 500(内部服务器错误),以便 JavaScript 可以轻松处理该问题。

  4. Exception 对象仅提供可能有用的 getMessage()getCode() 方法,因此可以生成响应正文像这样:

    $responseBody = json_encode(array(
      'message' => $e->getMessage(),
      'code'    => $e->getCode()
    ));
    

关于php - 如何将异常对象转换为stdClass?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4585092/

相关文章:

javascript - 动态更改表单操作?

php - 在 mysql 中进行 like 查询时忽略点和逗号

javascript - 在 PhoneGap Build 中从 Facebook 获取信息

php - 读取数据库内容,转换为字符串

javascript - 验证未通过自定义输入组件传播 - Angular 4

javascript - 如何从 React Select 访问值并将它们传递给提交时的 Formik 值?

javascript - jwplayer 嵌入 sitefinity 时如何初始化?

javascript - 删除 php 中的数组括号 - AJAX 请求

javascript - 如何在变量中插入动态多行文本框生成的值

php - AdminLTE-3 激活侧边导航栏