gpt4 book ai didi

hhvm - 在浏览器中显示致命/通知错误

转载 作者:行者123 更新时间:2023-12-04 07:53:38 25 4
gpt4 key购买 nike

好吧,我刚开始使用 hhvm/hack。但我想向浏览器显示错误但没有让它工作。

我如下设置ini设置

error_reporting(E_ALL);
ini_set('display_errors', '1');

根据 ini_get 的 var_dump值被设置为
string(5) "32767"
string(1) "1"

但是当我这样做时
<?hh

error_reporting(E_ALL);
ini_set('display_errors', '1');

throw new InvalidArgumentException('test');

当我通过浏览器访问该页面时,我只会得到一个白屏和一个 500 http header 。所以没有解释致命/异常错误。

但是我会通过终端 hhvm index.php吗?它会显示;
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'test' in /var/www/public/index.php:3
Stack trace:
#0 {main}

所以现在的问题。为什么我在浏览器中没有收到任何消息,但在 cli 中却收到了?第二个是,我如何让它在浏览器中工作以显示消息。

我遇到了这个 questionthis one .但第一个,好吧是一样的,但没有答案。第二个是关于静态检查的内容。 IE给出了一个int等,至少我认为他的意思是这样。

其他 question我过来了,看起来像我的,但又没有回答。

根据 docs我猜它应该可以工作。

阅读更多关于我遇到的文档

虽然 display_errors 可以在运行时设置(使用函数 ini_set()),但如果脚本有 fatal error ,它不会有任何影响。这是因为未执行所需的运行时操作。

所以我认为异常是一个 fatal error ,所以我只是做了 $test = $bar + 1;
这让 cli 到
Notice: Undefined variable: bar in /var/www/public/index.php on line 8
int(1)

再次在浏览器中
int(1) 

所以我也没有收到通知。

当我重新启动 hhvm service hhvm restart我还收到错误消息 Log file not specified under daemon mode.不知道和它有没有关系

最佳答案

好吧,我花了一些时间寻找,但最终找到了答案,see this github post .但是,它不能显示 fatal error 。但是会显示通知

所以我编写了自己的错误处理程序;它不完整,但现在可以完成工作。

警告,不检查 ini display_errors

set_error_handler(function ($errorNumber, $message, $errfile, $errline) {
switch ($errorNumber) {
case E_ERROR :
$errorLevel = 'Error';
break;

case E_WARNING :
$errorLevel = 'Warning';
break;

case E_NOTICE :
$errorLevel = 'Notice';
break;

default :
$errorLevel = 'Undefined';
}

echo '<br/><b>' . $errorLevel . '</b>: ' . $message . ' in <b>'.$errfile . '</b> on line <b>' . $errline . '</b><br/>';
});

关于hhvm - 在浏览器中显示致命/通知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24524222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com