本文主要介绍php中全局错误处理的详细解决方案是什么(php中全局错误处理的详细解决方案有哪些)?,下面一起看看php中全局错误处理的详细解决方案是什么(php中全局错误处理的详细解决方案有哪些)?相关资讯。
本文的目的是为项目开发一个有用的全局错误处理php,可以帮助开发人员快速定位问题,提高工作效率。默认情况下,直接输出全局错误,但最近的开发使用框架库来建立全局错误处理,这导致许多错误消息没有输出,以及一些耗时的位置问题。所以我们研究了库的实现,发现它有error_reporting和set_error_handler,导致了这个现象。现在把这两个函数的用法记录下来作为备忘录。后台php没有类型检测,这使得开发者更容易输入错误的单词,导致致命错误,最终导致脚本停止执行。如果你不这样做,那将是一件非常痛苦的事情。;现在我得不到任何错误的信息。您必须从脚本的第一行开始调试,继续打印或回显代码行,直到找到错误的单词。然后,您必须返回并删除所有先前添加的打印或回显。这是一份无聊的工作。概述一般情况下,php会直接输出致命错误,并输出错误的来源(文件地址,行号)和原因,这样在开发中很容易定位。但是有时候,可能是因为设置php.ini或者第三方框架配置的问题,输出了这些信息。此时,我们必须学会设置相关参数,并输出这些错误信息,以帮助快速找到问题。error_reporting错误报告是php的一个全局配置参数。错误输出级别是在php.ini中配置的,因为参数是一个点,可以用来设置错误输出级别。以下信息是从php.ini中复制的:error_reporting是一个位字段。或者得到每个数字的期望误差。报告级别e _ all-所有错误和警告(不包括e_strict) e_error致命运行时错误e_recoverable_error几乎致命运行时错误e _ warning警告-运行(非致命)e_parse编译时分析错误e _ notice通知(这些都是运行时警告,经常会导致你的代码出现bug,但可能是有意的(比如使用未初始化的变量)依赖facts,facts会自动初始化为空字符串)e _ strict——运行注意事项,这样php的建议就可以修改到你的代码中,这样会保证最好的互操作性。以及php初始启动时发生的代码e _ core _ error-fatal error e _ core _ warning-wa的前向兼容性。警告(非致命错误)发生php s初始启动e_compile_error致命编译时错误e _ compile _ warningwarning-编译时(非致命错误)e_user_error用户生成的错误消息e_user_warning用户生成的警告消息e_user_notice用户生成的通知消息;示例:;显示除错误之外的所有信息、通知和编码标准警告;error _ reporting = e _ all ~ e _ notice;-显示除通知之外的所有错误;error _ reporting = e _ all ~ e _ notice e _ strict |;;-仅显示错误;error _ reporting = e _ compile _ error | e _ recoverable _ error | e _ error | e _ core _ error;显示除通知和编码标准警告之外的所有错误;error_reporting = e_all ~ e_notice默认情况下,php输出除通知以外的错误消息。同理,php的标准函数提供了与php脚本相同的函数error_reporting(int $ level)。这不会影响其他程序。值得注意的是,当美元级别为0时,该级别为错误输出,任何错误都不会输出。set _ error _ handler the默认的错误处理是输出信息。但是,有时您需要定义其他操作,并且需要自定义错误处理。function.php提供了一个内置函数,可以帮助我们注册自己的错误处理函数。函数的原型如下:mixed set _ error _ handler(callback error _ handler usd error _ types = e _ all { int,e_strict} |)值得注意的是,即使注册了错误处理函数,默认的行为仍然会是错误的,并且会输出一条错误消息,所以需要在程序中将错误级别显示设置为0,然后再注册错误处理函数。这样,在生产环境中,即时错误和敏感的内部错误信息不会受到潜在恶意用户的影响就显得尤为重要。它还指出自定义错误处理程序不能处理致命错误(如编译错误)。以下是自定义错误处理程序的用法:您可以通过执行此脚本获得以下输出:注意:定义变量:/your/php_demo_file.php第40行警告:在zero/your/php_demo_file.php第41行致命错误:触发致命错误/you/php_demo_file.php第42行可以看到noexistclass的最新异常是否被自定义错误处理函数捕获。最后提到异常处理set_exception_handler注册在一个网站的顶部,可以设置,然后跳转到一个统一的错误处理页面。
了解更多php中全局错误处理的详细解决方案是什么(php中全局错误处理的详细解决方案有哪些)?相关内容请关注本站点。