PHP拡張例外
はじめに
例外クラスはThrowableを実装します インターフェイスであり、すべての例外の基本クラスです。 クラス、事前定義された例外、およびユーザー定義の例外。 Exceptionクラスは、Throwableインターフェースからのメソッドを実装するためのいくつかの最終的な(オーバーライド不可能な)メソッドを定義し、 __tostring() 例外オブジェクトの文字列表現を返すためにオーバーライドできるメソッド。
final public function getMessage() | 例外のメッセージ |
最終的なパブリック関数getCode() | 例外のコード |
最終的なパブリック関数getFile() | ソースファイル名 |
最終的なパブリック関数getLine() | ソース行 |
最終的なパブリック関数getTrace() | backtrace()の配列 |
最終的なパブリック関数getPrevious() | 前の例外 |
最終的なパブリック関数getTraceAsString() | フォーマットされたトレースの文字列 |
public function __toString() | 表示用のフォーマットされた文字列 |
ユーザー定義の例外クラスがコンストラクターを再定義する場合は、 parent ::__ Construct()を呼び出す必要があります。 利用可能なすべてのデータが適切に割り当てられていることを確認します。
例
次のスクリプトは、 myExceptionと呼ばれるカスタム例外クラスを定義します 。このタイプの例外は、$numの値が0未満または100より大きい場合にスローされます。getMessage() Exceptionクラスのメソッドは、エラーメッセージと getLine()を返します。 メソッドは、例外が発生するコード行を返します
例
<?php class myException extends Exception{ function message(){ return "error : " . $this->getMessage() . " in line no " . $this->getLine(); } } $num=125; try{ if ($num>100 || $num<0) throw new myException("$num is invalid number"); else echo "$num is a valid number"; } catch (myException $m){ echo $m->message(); } ?>
出力
上記のコードを$num=125および$num=90で実行して、エラーメッセージと有効な番号のメッセージを取得します
error : 125 is invalid number in line no 10
-
PHPのset_exception_handler()関数
set_exception_handling()関数は、例外を処理するためのユーザー定義関数を設定します。例外がtry/catchブロック内でキャッチされない場合、デフォルトの例外ハンドラーを設定します。 exception_handlerが呼び出された後、実行は停止します。 構文 set_exception_handling(exception_handler) パラメータ exception_handler −キャッチされない例外が発生したときに呼び出される関数の名前。この関数は、set_exception_handler()を呼び出す前に定義する必要があります。このハンドラー関
-
PHPのrestore_exception_handler()関数
restore_exception_handler()関数は、前の例外ハンドラーを復元します。これは、set_exception_handler()を使用して例外ハンドラー関数を変更した後、以前の例外ハンドラー(組み込み関数またはユーザー定義関数である可能性があります)に戻すために使用されます。 構文 restore_exception_handler() パラメータ NA 戻る restore_exception_handler()関数は常にTRUEを返します。 例 以下は例です- <?php function customException1($