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 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。但是,我们仍然会在除法运算符上收到警告错误。

示例:算术错误

<?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 zero

File: /home/cg/root/9008538/main.php

Line: 5

continues with the PHP code

注意:在上面的程序中,我们捕获并报告了DivingByZeroErrorinsidetheintdiv()函数。

以上是 PHP 7中的异常和错误 的全部内容, 来源链接: utcz.com/z/327644.html

回到顶部