例外処理はエラー処理として分類され、PHP は 5.1.0 から例外例外処理クラスを追加しました。
1. 例外処理
PHP 例外処理は Java に似ており、例外発生時に try、throw、catch ステートメントを使用してコーディングします。例外がキャッチされずに set_Exception_handler() 関数を使用して対応処理を行った場合、重大なエラー (致命的エラー) が発生し、「Uncaught Exception」のエラーメッセージが出力されます。
1. try:
は、例外が発生する可能性のあるコード ブロックに使用されます。
2. throw:
例外をスローするために使用される、例外のトリガー (トリガー) 方法を指定します。各スローは少なくとも 1 つのキャッチに対応する必要があります。
3. catch:
例外をキャッチし、例外情報を含むオブジェクトを作成します。
説明: php 例外をキャッチするには例外をスローする必要があると仮定します。
#基本構造: #try{
#some codes
throw new Exception("message"[,code[,...]]);
}
catch(Exception $ex){
#some codes
}
## クラスの概要:
Exception { /* 属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; /* 方法 */ public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] ) final public string getMessage ( void ) final public Exception getPrevious ( void ) //获取异常链中前一个异常 final public int getCode ( void ) final public string getFile ( void ) final public int getLine ( void ) final public array getTrace ( void ) //获取异常追踪信息 final public string getTraceAsString ( void ) //字符串方式返回异常追踪信息 public string __toString ( void ) final private void __clone ( void ) }説明:
<?php try { throw new Exception("Some error message", 30);//抛出异常,设置异常代号为30 } catch(Exception $e) { echo "Exception:file:".$e->getFile().",message:" . $e->getMessage().",code:".$e->getCode()."line:".$e->getLine(); } ?>
3. カスタム例外クラス
例:
class customException extends Exception { public function errorMessage() { //error message $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 customException("这是自定义异常。"); } catch(customException $ex){ #some codes }4. 複数のキャッチによる例外のキャッチ
1. 大きな例外キャッチを後ろに置きます。例外がスローされると、どのキャッチが最初に満たされるかが順番に決定され、一度に 1 つのキャッチだけが実行されるためです。
2. try が実行されると、最大 1 つの catch が実行されます (例外が発生した場合)。つまり、前の catch が実行を満たした場合、後続の catch は考慮されません。 推奨チュートリアル:PHP ビデオ チュートリアル
以上がPHP プロジェクトで例外クラスを設計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。