【发布时间】:2019-02-07 23:42:37
【问题描述】:
执行此简单代码后:
$message = 'some text '.inet_pton('119.252.33.171');
throw new \Exception($message);
PHP 返回致命错误
Fatal error</b>: in ...
此代码预计会返回
Fatal error: Uncaught Exception: ..
但这并没有发生。使用此消息,错误发生在“异常”类中!
Code example 1 from sandbox.onlinephpfunctions.com(注释和取消注释 2 行代码 3-4 和 6-7)
Code example 2 from sandbox.onlinephpfunctions.com
在转换许多其他 IP 时会注意到此行为。 目前,我在“throw new”之前使用以下行解决了问题:
$message = preg_replace( '/[^[:print:]\r\n]/', '_', $message);
如何正确转义消息中的字符以获得异常或 PHP 错误?
我的 PHP 版本是 7.2
【问题讨论】:
-
您的标题和您的问题不匹配且令人困惑,当您抛出异常时,它会导致
Fatal error。你发现异常了吗? -
否,因为错误消息
'some text '.inet_pton('119.252.33.171');本身会导致 Exception 类中的错误。在您的主机上运行我的示例并查看结果。 -
我无法仅通过
inet_pton调用重现该错误。你确定这是异常的原因吗? -
@Miron 你确定是致命错误吗?在设置了 display_errors 和 E_ALL 的 7.2.11 上不会发生。致命错误的确切消息是什么?
-
<br /> <b>Fatal error</b>: in <b>...</b> on line <b>92</b><br />