PHP 7 では、ほとんどのエラーが報告される方法が変更されます。 PHP 5 の従来のエラー報告メカニズムとは異なり、ほとんどのエラーは Error 例外としてスローされるようになりました。
この種の Error 例外は、通常の例外と同様に try / catch ブロックでキャッチできます。一致する try / catch ブロックがない場合は、例外処理関数 (set_Exception_handler() で登録) が呼び出されて処理されます。 例外ハンドラーが登録されていない場合は、従来の方法で処理され、致命的エラーとして報告されます。
Error クラスは Exception クラスから拡張されていないため、catch (Exception $e) { ... } のようなコードでは Error をキャッチできません。 catch (Error $e) { ... } のようなコードを使用するか、例外ハンドラー (set_Exception_handler()) を登録してエラーをキャッチできます。
エラー例外階層
- Error
- ArithmeticError
- AssertionError
- DivisionByZeroエラー
- ParseError
- TypeError
- Exception
- ...

インスタンス
<?php
class MathOperations
{
protected $n = 10;
// 求余数运算,除数为 0,抛出异常
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
















現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜 