我希望在执行之前在php中收到错误消息。基本上我的意思是,如果我的代码不好:
// This code is incorrect, I want to receive the error before it gets handled!
$some_var = new this_class_is_not_made;
现在该类不存在,因此它将由php中的默认错误处理程序处理。但我想禁用正常的错误处理程序并创建自己的错误处理程序。
另一个例子:
somefunction( string some_var ); // some_var misses the variable prefix. ( $ )
示例错误消息:
致命错误:功能' some_var'没有在行中定义:$ x!
此错误将是:somefunction( string some_var );
但是我如何收到消息但是还会禁用正常的错误系统?
编辑:使错误系统执行user-defined
功能
// I would want the error system to execute a function like this:
function(string $errorMessage, int $error_code){
if($error_code < 253){ return "Fatal error"; }
if($error_code < 528 && $error_code > 253){ return "Warning"; }
}
发现答案:作者:ShiraNai7
try
{
// Code that may throw an Exception or Error.
}
catch (Throwable $t)
{
// Executed only in PHP 7, will not match in PHP 5
}
catch (Exception $e)
{
// Executed only in PHP 5, will not be reached in PHP 7
}
答案 0 :(得分:0)
在PHP 7.0.0或更高版本中,如果Error
不存在,代码将抛出this_class_is_not_made
异常。
try {
$some_var = new this_class_is_not_made;
} catch (Error $e) {
echo $e->getMessage();
}
请注意,如果Error
确实存在,这也将捕获任何其他this_class_is_not_made
例外,并在此过程中导致其他错误。
在7.0.0之前的PHP版本中,你运气不好 - 致命错误总是会终止主脚本。
最好使用class_exists()
代替:
if (class_exists('this_class_is_not_made')) {
$some_var = new this_class_is_not_made;
}
这适用于所有支持类的PHP版本。