PHP 7中的异常和错误
在早期版本的PHP中,我们只能处理异常。无法处理错误。在发生致命错误的情况下,它用于停止整个应用程序或应用程序的某些部分。为了克服这个问题,PHP7添加了throwableinterface来处理异常和错误。
异常: 每当发生致命且可恢复的错误时,PHP7都会引发异常,而不是中止完整的应用程序或脚本执行。
错误:PHP7抛出了TypeError,ArithmeticError,ParserError和AssertionError,但警告和注意错误保持不变。使用try/catch块,可以捕获错误实例,现在,FatalErrors可以抛出错误实例。在PHP7中,添加了throwable接口,以将两个异常分支Exception和Error联合起来,以实现throwable。
示例
Hello();
$a = null;
$a->Hello();
}
catch (Error $e) {
echo "Error occurred". PHP_EOL;
echo $e->getMessage() . PHP_EOL ;
echo "File: " . $e->getFile() . PHP_EOL;
echo "Line: " . $e->getLine(). PHP_EOL;
}
echo "Continue the PHP code\n";
?>输出结果在上面的程序中,我们将得到以下错误-
class XYZ Error occurred Call to a member function Hello() on null File: /home/cg/root/9008538/main.php Line: 11 Continue with the PHP code
注意:在上面的示例中,我们在空对象上调用方法。该catch用于处理异常,然后继续执行PHP代码。
算术误差
我们将使用算术错误的DivisionByZeroError。但是,我们仍然会在除法运算符上收到警告错误。
示例:算术错误
getMessage() . PHP_EOL ;
echo "File: " . $e->getFile() . PHP_EOL;
echo "Line: " . $e->getLine(). PHP_EOL;
}
echo "$z \n";
echo " continues with the PHP code\n";
?>输出结果上述程序的输出将以警告错误执行-
Division by zero File: /home/cg/root/9008538/main.php Line: 5 continues with the PHP code
注意:在上面的程序中,我们捕获并报告了DivingByZeroErrorinsidetheintdiv()函数。