错误处理PHP
作者:互联网
我写了一个错误处理程序来处理php中的各种错误(甚至解析错误等).
题:
由于我现在可以检测到错误类型(常量),因此有必要确定我应允许还是不允许哪些错误,并在这种情况下进行轻度关机.
如果我看一下http://www.php.net/manual/en/errorfunc.constants.php,我会看到所有用于不同类型错误的不同常量.
问题是:
1)这些常量之间是否存在某种关系以进行错误处理.可以说,我知道我不想在屏幕上等打印错误了吗?还是我必须为每个错误常量手动设置此参数(看起来像这样)?
2)如何在不使用trigger_error()或user_error()的情况下引发屏幕示例中的每个错误?是否有某种列表可以产生这些错误,而我可以用代码产生哪些错误?
干杯,非常感谢您的回答.
解决方法:
您可以将所有通知,警告和错误常量分组在一起,如下所示:
notice : 8 + 1024 + 2048 + 8192 + 16384 = 27656 0x6c08
warning: 2 + 32 + 128 + 512 = 674 0x2a2
error : 1 + 16 + 64 + 256 + 4096 = 4433 0x1151
您也可以通过显式使用常量名称来添加它们,例如E_ERROR等
所以:
$is_notice = $code & 0x6c08 != 0;
$is_warning = $code & 0x2a2 != 0;
$is_error = $code & 0x1151 != 0;
至于第二个问题,您是否正在寻找可触发上述不同层次的代码?
$f = fopen($a, 'r'); // notice + warning
$f->read(); // error
include 'script_with_parse_error.php'; // e_parse
function test(Iterator $i) { }
test(123); // e_recoverable_error
function modify(&$i) { ++$i; }
modify(123); // e_strict
$x = split(',', ''); // e_deprecated
当然,只能使用trigger_error()生成E_USER事件.
标签:error-handling,php 来源: https://codeday.me/bug/20191123/2065650.html