【问题标题】:What's a good way to manage error and success messages and codes?管理错误和成功消息和代码的好方法是什么?
【发布时间】:2010-11-10 20:21:53
【问题描述】:

目前我没有一个很好的系统来管理错误或成功消息,它们几乎是与代码内联编写的。有人可以建议最佳实践或您正在做的事情,以便能够在整个应用程序中正确管理大量错误和成功消息。

考虑国际化......一些应用程序将有语言文件,然后应用程序只是从特定文件中提取字符串......我正在考虑为错误和成功消息实现类似的概念,并且很好奇其他人做了什么沿着同样的路线?

【问题讨论】:

  • 我知道这是一篇旧帖子,但您是否找到了您正在寻找的解决方案?

标签: php error-handling error-code


【解决方案1】:

这是我使用的一个函数:

function checkErrors($type, $msg, $file, $line, $context) {
   echo "<h1>Error!</h1>";
   echo "An error occurred while executing this script. Please contact the <a href=mailto:webmaster@somedomain.com>webmaster</a> to report this error.";
   echo "<p />";
   echo "Here is the information provided by the script:";
   echo "<hr><pre>";
   echo "Error code: $type<br />";
   echo "Error message: $msg<br />";
   echo "Script name and line number of error: $file:$line<br />";
   $variable_state = array_pop($context);
   echo "Variable state when error occurred: ";
   print_r($variable_state);
   echo "</pre><hr>";
} 
set_error_handler('checkErrors'); 

它将为您提供 PHP 代码产生的所有错误和警告,并在有人访问包含错误的页面时为您创建一个错误页面。

希望这会有所帮助!

【讨论】:

  • 是的,但实际消息仍然分布在整个应用程序中,我正在寻找一种方法来管理整个应用程序中使用的实际消息
【解决方案2】:

由于我使用单访问点样式系统来引导应用程序并包含正确的文件(它基本上是一个控制器系统),因此我可以使用:

<?php
try {
    require 'bootstrap.php';
    // dispatch controller
    require "controllers/$controller.php";
} catch (Exception $e) {
    // echo info
} catch (LibraryException $le) {
    // library specific exception
}

然后当我想抛出错误时,我只是:

throw new Exception('An error occurred.');

有人可以建议最佳做法或您正在做的事情,以便能够在整个应用程序中正确管理大量错误和成功消息。

这是我批量管理错误的方式,但不是管理列表的方式。我可以 grep 获取我发现的错误消息,但它并不是很有条理。

【讨论】:

  • 最佳实践是让 LibraryException 扩展 Exception,然后将 LE catch 块放在 Exception catch 块之前。
【解决方案3】:

您可以使用 PHP Documentor 之类的工具,并在每个类的文档中包含错误和消息。

http://www.phpdoc.org/

【讨论】:

    猜你喜欢
    • 2011-01-24
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多