PHP8.0 の非常に重要なアップデートは、エラー処理メカニズムの改善であり、新しいインターフェイススロー可能オブジェクトが導入されています。このインターフェイスには、Error と Exception という 2 つの例外タイプが含まれているため、開発者は、キャッチ可能な例外仕様に準拠するエラーと例外を区別する必要がありません。以下では、throwable インターフェイスについて詳しく紹介します。
throwable は、PHP8.0 で導入された新しいインターフェイスで、Error と Exception の 2 つの例外タイプが含まれます。以前のエラー処理メカニズムとは異なり、PHP8.0 では、try-catch ブロックを使用して Error タイプの例外を処理できます。これにより、プログラム内のエラーを処理するためのより柔軟で便利な方法が提供されます。
throwable の特性には主に次の点が含まれます。
(1) 2 つの例外タイプが含まれます: Error と Exception;
(2) エラー タイプの例外は、try-catch ブロックを使用してキャプチャおよび処理することもできます。
##(3) エラーおよび例外タイプの例外は、インターフェイスのタイプ ヒントとタイプ宣言を使用してキャプチャできます。#(4) PHP7.0 以前と異なり、RuntimeException を使用して例外をスローする場合、明示的に宣言する必要はありません。
throwable の使用方法try { $a = 1 / 0; } catch (Throwable $t) { echo 'Error: ' . $t->getMessage(); }
The の例外を処理できます。上のコードでは、整数 1 を 0 で除算しようとしていますが、これにより Error タイプの例外がスローされます。 try-catch ブロックを使用して例外をキャッチして処理し、例外情報を出力します。
タイプヒンティングをスロー可能なインターフェイスと組み合わせて使用して、キャッチする例外のタイプを指定することもできます。
function test(): int { try { $a = 1 / 0; } catch (Throwable $t) { return 0; } return $a; }
上記のコードでは、整数。この関数では、整数 1 を 0 で除算し、try-catch ブロックを使用して Error 型の例外をキャッチしようとします。例外がキャッチされた場合は 0 が返され、それ以外の場合は計算された整数が返されます。
try-catch ブロックを使用して Error 型の例外をキャッチしない場合、Error 型の例外を直接スローすると致命的なエラーが発生します。
特定のシナリオでのスロー可能インターフェイスの使用class MyException implements Throwable{ //code here } try { throw new MyException('This is a custom exception'); } catch (Throwable $t) { echo 'Error: ' . $t->getMessage(); }
上記のコードでは、MyException という名前のカスタム例外タイプを定義し、Throwable インターフェイスを実装しました。 try ブロック内で、MyException 型の例外をスローし、catch ブロックを使用して例外をキャッチします。
概要以上がPHP8.0 の新しいエラー処理メカニズム: スロー可能なインターフェースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。