如何不捕获notice,页面能够正常输出

banro512

问题描述

有些页面使用了未定义或不存在的变量,会触发 E_NOTICE 错误,php_cli.ini已设置 E_ALL & ~E_NOTICE ,原生php页面下不会显示该错误,页面其他内容能够继续显示。

原生php设置错误报告等级为 E_ALL,显示错误但其他内容正常显示

原生php设置错误报告等级为 E_ALL & ~E_NOTICE ,不显示错误,其他内容正常显示

webman中,异常会捕获该错误,即便设置了 E_ALL & ~E_NOTICE,然后整个页面会转到异常处理程序中。
比如一个页面,头部使用了未定义的 $sitename 变量,整个页面都变成了异常处理那个页面。

想请教下,如何能不获取这个错误,仍能继续显示该页面的内容。比如 $sitename 未赋值,则忽略它,继续显示其他内容,就像原生php页面一样。

为此你搜索到了哪些方案及不适用的原因

未想到办法

442 1 0
1个回答

胡桃

"Undefined variable" 是 catch 不住的,目测是模板引擎用 isset 或者 empty 函数检测过后手动抛出异常。而且在较新的 PHP 版本里,"Undefined variable" 已经升级为 Warning 了。
所以应当修改模板引擎的配置,或者修改模板引擎的源代码,又或者更换模板引擎。

  • 暂无评论
年代过于久远,无法发表回答
🔝