//thrown は次のような例外をスローします。 new Exception('エラー') がスローされました。 一例:
Exception クラス構造: ほとんどのメソッドはオーバーライドが禁止されています (最終)
拡張例外クラス try-catch には複数の catch 句を含めることができます。最初の catch 句から始めて、句内の例外変数の型が throw ステートメントによってスローされた例外の型と一致する場合、その句が実行され、他の catch 句は実行されません。それ以外の場合は、引き続き次の catch 句を試行します。Exception はすべての例外クラスの基本クラスであるため、異なる例外の種類に応じて異なる処理メソッドを使用する場合は、Catch 句が最後に来る例外タイプを使用する必要があります。 。 Exception はすべての例外の基本クラスであり、実際のニーズに応じて例外クラスを拡張できます。
catch 句で例外のタイプを決定したり、コードやその他の情報に基づいて例外を処理するかどうかを決定したりできます。catch 句をアンロードしたコードがキャッチした例外を適切に処理できない場合は、キャッチ句内で例外をスローし続けることができます。 catch 句で例外が発生しました。 3. 例外コールバック関数 set_Exception_handler(callback functionName) //この関数は、Exception またはそのサブクラスの例外が発生したときに呼び出されます。 functionExceptionHandlerFun($errObj){ // 例外例外コールバック関数には、スローされた例外オブジェクトであるパラメータが 1 つだけあります。 //...... } 例外例外のコールバック関数は、set_error_handlerのコールバック関数のようにtrueを返して例外を排除することはできません。コールバック関数が例外を処理しても後続のコードは実行されませんので、後続のコードを実行し続けたい場合はtry-catchする必要があります。使用済み 。 ただし、例外があります。スクリプト終了コールバック関数は実行でき、スローされた例外が処理されない場合でもコールバック関数は実行できます。 register_shutdown_function(コールバック関数名[,引数1,引数2,...]); 例えば:
shutdownfunction() はスクリプトの最後で実行されるため、このコールバック関数は、エラーがスローされた後に関数が定義されている場合でも、スクリプト内の任意の場所で関数を呼び出すことができます (関数定義はスクリプトはコンパイル時に完了します)。 4.trigger_error(string errorMsg[,int user_error_type]) この関数は、エラーをアクティブにトリガーするために使用されます。 user_error_type には、E_ALL、E_USER_ERROR、E_USER_WARNING、E_USER_NOTICE、またはそれらの組み合わせの値のみを指定できます。 set_error_handler(callbeck functionName[,user_error_type]); //システムによってスローされたエラーや、trigger_error() 関数を使用してユーザーによってトリガーされたエラーなどのエラーを処理するために、trigger_error() のコールバック関数を設定します。 オプションのパラメータ user_error_type: このパラメータを設定すると、trigger_error でスローされたエラーの種類が user_error_type の定義範囲と一致する場合にのみコールバック関数を起動できます。 この値は、error_reporting() 関数と同様に設定されます。 最初のパラメータ (コールベック関数名): 関数名には 5 つのパラメータを含めることができ、そのうち最初の 2 つは必須です。 trigger_error がスローする user_error_type、trigger_error がスローする errorMsg、エラーをスローするファイルの絶対パス、エラーをスローする行番号、およびエラーがスローされたときのコンテキスト (trigger_error がスローされるスコープ内のすべてを含む配列) () には変数、関数、クラス、その他のデータが配置されます。 コールバック関数の戻り値: false が返された場合、システム エラー処理メカニズムはエラーをスローし続け、エラーを解消するために true を返すか戻り値を返しません。 trigger_error() によってトリガーされたエラーは、try-catch 例外キャッチ ステートメントではキャッチされません。 |