Bra*_*roy 2 php error-handling error-logging
PHP文档读取(强调我的):
error_reporting()函数在运行时设置error_reporting指令.PHP有许多级别的错误,使用此函数设置脚本持续时间(运行时)的级别.如果未设置可选级别,则error_reporting()将仅返回当前错误报告级别.
这是否意味着错误报告的级别只能在PHP脚本中设置一次,之后不会更改?例如,是否可以这样做:
error_reporting(0);
try {
errorSilently();
} catch (Exception $e) {
// Do nothing
}
error_reporting(E_ALL);
try {
errorLOUDLY();
} catch (Exception $e) {
// Do nothing
}
Run Code Online (Sandbox Code Playgroud)
请注意,我写了一个// Do nothing因为看起来如果抛出错误,Apache会以error_log任何方式将其写入,如果它被捕获或未被捕获.我想要做的是禁用该行为,而不是写入错误日志.
是的,您可以在程序运行期间随时更改错误报告级别,并且在您再次更改之前它将保持在新级别.你只能 "沉默"特定的部分.请注意,error_reporting()返回旧级别,特别是您可以执行以下操作:
$previous = error_reporting(0);
something_which_produces_warnings_which_can_safely_be_ignored();
error_reporting($previous);
Run Code Online (Sandbox Code Playgroud)
要暂时禁用错误日志记录,您可能需要ini_set('log_errors', false).
不,try..catch与错误报告无关.这些是不同的机制.error_reporting影响由...引发的错误trigger_error; try..catch是一种处理通过引发的异常的机制throw.
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |