【问题标题】:What are good practices of error handling when working with API and PHP?使用 API 和 PHP 时错误处理的良好做法是什么?
【发布时间】:2012-05-12 02:58:40
【问题描述】:

所以我正在使用 API,我想了解一些在不破坏脚本的情况下处理错误的良好做法。向我扔任何东西,让我接触更多,以便我进一步研究。

此外,感谢示例,它可以帮助我在视觉上将某些内容与术语/短语联系起来。

我的一些读物:

Error handling in PHP

【问题讨论】:

  • 记录一切,报告错误

标签: php error-handling


【解决方案1】:
  1. 日志错误
  2. 如果这是面向用户的应用程序/页面,则向他们显示人性化的错误消息,而不是 API 返回的错误消息
  3. 如果您的 API 调用因技术原因失败(即 curl 无法连接)或 API 遇到不寻常的技术问题,则应使用异常。否则应使用正常的错误处理(即用户提供的数据无效)

【讨论】:

  • 我不会自己记录错误,我会记录所有事务。但我很偏执。
  • 我不确定的是,我的异常应该走多远?我应该尝试/接听每个电话吗?
  • 是的。将每个调用包装在 try/catch 中并适当地处理异常。
  • 什么时候应该使用异常而不是错误记录?它应该总是抛出吗?如果没有,什么时候应该,不应该?
【解决方案2】:

错误处理,是一个很大很大的话题。它不能缩小到一个单一的答案。最佳实践通常根据用户友好性和安全性来判断。所以基本上你的api应该有多个单独的错误功能。

  • 应包括记录错误并在用户需要时显示的方法。
  • 编号你的错误。给每个错误一个唯一的编号来识别它。
  • 将例外付诸实践。 并非所有错误都是实际错误,有些是例外。
  • 必须创建多种处理错误的方法。喜欢一次将错误分组或逐个显示。

【讨论】:

    【解决方案3】:

    通常我所做的是用 try/catch 块包装潜在的有问题的代码 - 例如数据库连接。然后,如果发现任何错误,请将人类可读的等效项放入全局数组中,以便您可以安全地将列表输出到模板。

    例如:

    <?php
    $errors = array();
    try
    {
       if (!$var)
            throw new Exception('Meh..');
    }
    catch (Exception $e)
    {
        // Use $e with caution, as with database connection it can sometimes contain your password. :P
        $errors[] = 'Something is seriously wrong with that last statement.<br />' . $e;
    }
    
    
    // Template layers..
    
    echo '
            <ul>';
    foreach ($errors as $error)
        echo '
                <li>', $error, '</li>';
    
    echo '
            </ul>';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 2010-10-19
      • 2010-12-25
      • 2021-11-13
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      相关资源
      最近更新 更多