PHP 7中的异常和错误
在早期版本的PHP中,我们只能处理异常。无法处理错误。在发生致命错误的情况下,它用于停止整个应用程序或应用程序的某些部分。为了克服这个问题,PHP 7添加了throwableinterface来处理异常和错误。
异常: 每当发生致命且可恢复的错误时,PHP 7都会引发异常,而不是中止完整的应用程序或脚本执行。
错误: PHP 7抛出了TypeError,ArithmeticError,ParserError和AssertionError,但警告和注意错误保持不变。使用try / catch块,可以捕获错误实例,现在,FatalErrors可以抛出错误实例。在PHP 7中,添加了throwable接口,以将两个异常分支Exception和Error联合起来,以实现throwable。
示例
<?php输出结果class XYZ {
public function Hello() {
echo "class XYZ\n";
}
}
try {
$a = new XYZ();
$a->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 XYZError 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。但是,我们仍然会在除法运算符上收到警告错误。
示例:算术错误
<?php输出结果$x = 10;
$y = 0;
try {
$z = intdiv($x , $y);
}
catch (DivisionByZeroError $e) {
echo "Error has occured\n";
echo $e->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 zeroFile: /home/cg/root/9008538/main.php
Line: 5
continues with the PHP code
注意:在上面的程序中,我们捕获并报告了DivingByZeroErrorinsidetheintdiv()函数。
以上是 PHP 7中的异常和错误 的全部内容, 来源链接: utcz.com/z/327644.html