gpt4 book ai didi

php - 是他们防止 php gzuncompress 数据错误严重性 : Warning 的方法

转载 作者:搜寻专家 更新时间:2023-10-31 20:35:31 25 4
gpt4 key购买 nike

是他们防止 php gzuncompress() 函数的数据错误的方法严重性:警告

因此,如果由于错误的数据输入而发生数据错误

它只会返回false 或 null

而不是如下所示的严重性:警告:

A PHP Error was encountered

Severity: Warning

Message: gzuncompress(): data error

我不想通过关闭错误报告来关闭对所有其他人的警告

我试过了

try {
$result= gzuncompress($crypt) ;
} catch (Exception $ex) {
$result=$ex;
}

期望它不会显示和存储按摩。

这不是我想要的,因为我想 catch 事件并做一个步骤但无论如何我现在已经使用@

解决了它

最佳答案

正如您已经发现的,gzuncompress 不会抛出异常;所以你可以这样做:

$result = @gzuncompress($data);
if ($result === false) {
// do something related to error here
}

但是如果你真的想在这样的警告期间抛出异常,根据你想要的代码片段,你可以定义一个全局错误处理程序:

set_error_handler(
function($errno, $errstr, $errfile, $errline) {
if ($errno == E_WARNING && $errstr == 'gzuncompress(): data error') {
throw new MyGzException($errstr);
}
}
);

然后在你的代码中你会说:

try {
$result = @gzuncompress($data);
} catch (MyGzException $e) {
$result = $e;
}

但是,同样,这是一个全局处理程序,可能会出现一些问题:

  • 对应用程序其他部分的副作用,在这些情况下可能不会出现异常
  • 您的应用程序可能已经提供了自己的错误处理程序,您将覆盖它

因此,只有在您了解使用全局错误处理程序的全部含义和副作用时才这样做。

关于php - 是他们防止 php gzuncompress 数据错误严重性 : Warning 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36492443/

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