ホームページ > バックエンド開発 > PHPチュートリアル > PHP 7での例外処理への変更のクラッシュコース

PHP 7での例外処理への変更のクラッシュコース

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-02-10 09:57:09
オリジナル
973 人が閲覧しました

A Crash Course of Changes to Exception Handling in PHP 7

PHP 7例外処理の大規模な改善

PHP 7は、例外処理に大幅に改善され、ThrowableインターフェイスとErrorクラスの導入により、エラー処理機能が大幅に向上します。 Throwableインターフェイスは、ExceptionおよびErrorクラスのベースインターフェイスであり、例外であろうとエラーであろうと、開発者がすべてのスロー可能なエラーをキャッチできるようにします。 Errorクラスは、致命的なエラーやタイプエラーを含むさまざまな内部PHPエラーを処理し、4つのサブクラス、ArithmeticErrorTypeErrorParseErrorAssertionError、および

に分類されます。

A Crash Course of Changes to Exception Handling in PHP 7

Throwableインターフェイス

ThrowableExceptionインターフェイスは、Errorおよび

クラスの親インターフェイスであり、例外かエラーであるかに関係なく、スロー可能なエラーをキャッチできます。たとえば、
<?php try {
    throw new Exception("这是一个异常");
} catch (Throwable $e) {
    echo $e->getMessage();
}
ログイン後にコピー

ParseErrorまたはnew

<?php try {
    $result = eval("2*'7'");
} catch (Throwable $e) {
    echo $e->getMessage();
}
ログイン後にコピー

このコードを実行して、ParseErrorでセミコロンが欠落しているため、eval()を取得します。

カスタムクラスは直接実装できません< Throwable Throwable Exception

カテゴリ

Errorクラスは、PHP内部エラー(致命的なエラーまたはタイプエラー)を処理します。 4つのサブクラスがあります:

Error

:ゼロで割るなどの算術エラー。
  1. ArithmeticError:間違ったタイプの値を変数に割り当てるなど、タイプエラー。
  2. TypeError:構文エラーなどの解析エラー。
  3. ParseError:アサーションエラー、
  4. 関数の条件が偽の場合にスローされます。
  5. AssertionError assert() PHP 7にアップグレードする前に、カスタム
  6. クラスが定義されている場合、その名前を変更する必要があります。そうしないと、致命的なエラーが発生します。

Error

ArithmeticErrorこのエラーは、数学操作を実行するときに発生します。たとえば、

を使用します

intdiv()は、-1

<?php try {
    var_dump(intdiv(PHP_INT_MIN, -1));
} catch (ArithmeticError $e) {
    echo $e->getMessage();
}
ログイン後にコピー
"」エラーを「分割」を取得します。 DivisionByZeroErrorのサブクラスであり、ゼロで割ったときにスローされます。 ArithmeticError

TypeError

このエラーは、主にPHP 7のスカラー型宣言に関連しています。このエラーは、特定のデータ型の関数または変数を作成し、さまざまなデータ型の値を保存しようとすると表示されます。

ParseError

このエラーは、新しいコード行を挿入するために

を使用する場合、または構文エラーを含む外部PHPファイルを使用するとスローされます。 eval()

AssertionError

このエラーは、assert()関数のアサーションが失敗した場合にのみスローされます。このエラーをキャッチするには、php.iniおよびassert.exception手順をzend.assertionsで構成する必要があります。

概要

PHP 7で導入されたインターフェイスとThrowableクラスは、例外処理を簡素化し、さまざまなエラータイプを簡単に処理します。 PHP 7にアップグレードするときは、カスタムクラスの問題の名前を付けることに注意し、新しいエラーと拡張クラスに精通してください。 Error Error

FAQ(FAQ) PHP 7例外処理の主な変更は何ですか?
    php 7は
  • インターフェイスと

    クラスを導入し、すべてのエラーは例外として扱い、ブロックで捉えることができます。 Throwable Error try/catch

  • インターフェイスはどのように機能しますか?
  • は、すべての例外のベースインターフェイスであり、およびThrowableによって実装されています。 Throwable Exception Error

  • クラスの機能は何ですか?
  • クラスは、内部PHPエラーを処理するために使用されます。 Error Error

    PHP 7の例外を処理する方法は?
  • ブロックを使用して、

    オブジェクトをキャプチャします。 try/catch Throwable Exception Error

  • の違いは何ですか?従来の例外の場合、内部PHPエラーの場合、

    >>>>。 Exception Error ExceptionErrorPHP 7で例外をスローする方法は?

  • キーワードを使用します。
  • throwPHP 7でカスタム例外を作成する方法は?

    拡張
  • クラス。
  • Exception

    キーワードの機能は何ですか?
  • ブロックのコードは、例外がスローされているかどうかに関係なく実行されます。

    finally finallyPHP 7で例外を再投与する方法は?

  • ブロックで
  • キーワードを使用します。

    catchthrowPHP 7で複数の例外を処理する方法は?

  • ステートメントに複数の
  • ブロックを含めます。

以上がPHP 7での例外処理への変更のクラッシュコースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート