是他们防止php gzuncompress()函数数据错误的方法严重程度:警告
因此,如果由于错误的数据输入而发生数据错误
它只会返回 false 或null
而不是严重性:警告,如下所示:
遇到PHP错误
严重性:警告
消息:gzuncompress():数据错误
我不想通过转错报告
来取消所有其他人的警告我试过了
try {
$result= gzuncompress($crypt) ;
} catch (Exception $ex) {
$result=$ex;
}
期待它不会显示和存储按摩。
这不是我想要的,因为我想抓住事件并迈出一步 但是现在我用@
解决了这个问题答案 0 :(得分:3)
正如您已经发现的那样,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;
}
然而,同样,这是一个全局处理程序,可能会遇到一些问题:
因此,只有在您了解使用全局错误处理程序的全部含义和副作用时才能执行此操作。