PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

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

  1. PHPのset_exception_handler()関数

    set_exception_handling()関数は、例外を処理するためのユーザー定義関数を設定します。例外がtry/catchブロック内でキャッチされない場合、デフォルトの例外ハンドラーを設定します。 exception_handlerが呼び出された後、実行は停止します。 構文 set_exception_handling(exception_handler) パラメータ exception_handler −キャッチされない例外が発生したときに呼び出される関数の名前。この関数は、set_exception_handler()を呼び出す前に定義する必要があります。このハンドラー関

  2. PHPのrestore_exception_handler()関数

    restore_exception_handler()関数は、前の例外ハンドラーを復元します。これは、set_exception_handler()を使用して例外ハンドラー関数を変更した後、以前の例外ハンドラー(組み込み関数またはユーザー定義関数である可能性があります)に戻すために使用されます。 構文 restore_exception_handler() パラメータ NA 戻る restore_exception_handler()関数は常にTRUEを返します。 例 以下は例です- <?php    function customException1($