Php7-error-handling
提供:Dev Guides
PHP 7-エラー処理
PHP 7から、エラー処理とレポートが変更されました。 PHP 5で使用されていた従来のエラーレポートメカニズムでエラーをレポートする代わりに、ほとんどのエラーはエラー例外をスローすることで処理されます。 例外と同様に、これらのエラー例外は、最初に一致するcatchブロックに到達するまでバブルアップします。 一致するブロックがない場合、* set_exception_handler()*でインストールされたデフォルトの例外ハンドラーが呼び出されます。 デフォルトの例外ハンドラーがない場合、例外は致命的なエラーに変換され、従来のエラーのように処理されます。
エラー階層は例外から拡張されていないため、catch(例外$ e)を使用するコード\ {… } PHP 5でキャッチされない例外を処理するブロックは、このようなエラーを処理しません。 キャッチ(エラー$ e)\ {… 致命的なエラーを処理するには、ブロックまたは* set_exception_handler()*ハンドラーが必要です。
例
<?php
class MathOperations {
protected $n = 10;
//Try to get the Division by Zero error object and display as Exception
public function doOperation(): string {
try {
$value = $this->n % 0;
return $value;
} catch (DivisionByZeroError $e) {
return $e->getMessage();
}
}
}
$mathOperationsObj = new MathOperations();
print($mathOperationsObj->doOperation());
?>
次のブラウザ出力を生成します-
Modulo by zero