Home  >  Article  >  Backend Development  >  Comparison of exception and error handling in PHP7 with previous versions

Comparison of exception and error handling in PHP7 with previous versions

藏色散人
藏色散人forward
2019-11-22 13:58:582133browse

Comparison of exception and error handling in PHP7 with previous versions

First code

ECHO PHP_VERSION.PHP_EOL;
function add (int $left,int $right){
  return $left+$right;
 }
try {
    echo add('left', 'right');
} catch (Exception $e) {
    // Handle exception
} catch (Error $e) { // Clearly a different type of object
    // Log error and end gracefully
    var_dump($e->getMessage());
}
echo PHP_EOL."helloword".PHP_EOL;

PHP v5.6.1 result

5.6.1
PHP Catchable fatal error:  Argument 1 passed to add() must be an instance of int, string given, called in C:\usertb\shareubuntu\Workerman\fortest.php on line 8 and defined in C:\usertb\shareubuntu\Workerman\fortest.php on line 3
Catchable fatal error: Argument 1 passed to add() must be an instance of int, string given, called in C:\usertb\shareubuntu\Workerman\fortest.php on line 8 and defined in C:\usertb\shareubuntu\Workerman\fortest.php on line 3
[Finished in 0.0s]

PHP v7.0.15 result

7.0.15-0ubuntu0.16.04.4
string(131) "Argument 1 passed to add() must be of the type integer, string given, called in /home/tb/win10share/Workerman/fortest.php on line 8"
helloword

Difference

The latter can capture fatal errors and can output helloword normally

The above is the detailed content of Comparison of exception and error handling in PHP7 with previous versions. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete