PHP関連シリーズ-PHP異常詳細

2756 ワード

PHPの異常は何ですか?
PHP 5は、新しいオブジェクト向けのエラー処理方法を提供する.例外処理は、指定されたエラー(例外)が発生したときにスクリプトの通常のプロセスを変更するために使用されます.この場合を異常と呼ぶ.
 
一般的な使用方法:
<?php
function test() {
	throw new Exception("   ");
}
try {
     test();
} catch (Exception $e) {
 echo $e->getMessage();
}
  • throw new Exception('XXX'):異常
  • を投げ出す
  • try:例外を使用する関数は、「try」コードブロック内にあるはずです.例外がトリガーされていない場合、コードは通常通り実行されます.しかし、異常がトリガーされると、異常が放出されます.
  • Catch:コードブロックは例外をキャプチャし、例外情報を含むオブジェクト
  • を作成します.
    カスタム例外クラス:
    class myException extends Exception {
     public function errorMessage() {
      	$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
      .': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';
      	return $errorMsg;
      }
    }
    
    
    try {
      throw new myException($email);
    }catch (myException $e){
     echo $e->errorMessage();
    }
  • myExceptionクラスはカスタムの例外クラスであり、Exception
  • を継承する必要があります.
  • ExceptionはPHP独自の内蔵例外クラスで、デフォルトではPHPデフォルトの内蔵例外クラスが使用されますが、カスタマイズによって、自分のニーズを満たす例外クラスにカスタマイズできます.
  • カスタム例外クラスを使用する場合、throw new myExceptionが例外を放出するにもカスタム例外クラスクラス名
  • を放出する必要がある.
  • catchの場合もカスタムの例外クラス
  • をキャプチャする必要があります.
  • 異常を投げ出してキャプチャ処理を行わないと、PHPコードエラーが発生し、以下のように
  • が発生する.
    Fatal error: Uncaught exception 'myException' in D:\AppServ\www\cctv\trunk\index.php:12 Stack trace: #0 {main} 
    thrown in D:\AppServ\www\cctv\trunk\index.php on line 12

    PHPデフォルト異常類詳細:
    class exception
    {
        protected $message = 'Unknow exception'; //        
        protected $code = 0; //       
        protected $file; //     PHP   
        protected $line; //     PHP  
        //                            
        function __construct($message=null,$code=0);
        final function getMessage();
        final function getCode();
        final function getFile();
        final function getLine();
        final function getTrace(); //              
        final function getTraceAsString(); //          getTrace    
        function __toString(); //   ,           
    }
  • PHPデフォルト例外クラスには、カスタム変数とメソッド
  • が多数表示されます.
  • $e->getMessageは一般的にエラー情報
  • を取得する.
  • $e->getCode()は、一般に、エラーコード
  • を取得する.
  • $e->getFile()エラーのファイル情報
  • を取得
  • $e->getLine()取得エラー行数
  • $e->getTrace()異常通過ファイルパス
  • __toString()は一般にリロード可能であり、出力可能な文字列
  • を返すために使用される.
    PHP異常類の作用:
  • 異常をキャプチャし、一般的にMYSQLリンクがリンクされていない場合、またはビジネスロジックが間違っている場合、異常を投げ出し、コードの最上位で受信することができます.
  • 異常分析処理.異常が発生した場合、異常のエラー情報をキャプチャし、ログに書き込むことができます.
  • は、例えばWEB側がページ形式に戻ることもできるし、AJAX側がJSONデータフォーマットに戻ることもできるなど、友好的なヒント情報を返すことができる.
  • 原則:異常に投げ出された場合、それを捕獲しなければならない.そうしないとPHPがエラーを報告する.