ホームページ > バックエンド開発 > PHPの問題 > PHP プロジェクトで例外クラスを設計する方法

PHP プロジェクトで例外クラスを設計する方法

王林
リリース: 2023-02-25 15:12:01
オリジナル
2166 人が閲覧しました

PHP プロジェクトで例外クラスを設計する方法

PHP 例外クラスと例外処理操作

例外処理はエラー処理として分類され、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
}
ログイン後にコピー

2. PHP 例外基本クラス Exception

## クラスの概要:

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 例外オブジェクトには主に異常なテキスト情報 (メッセージ) と例外コードが含まれていることがわかります。 /Codename (コード、開発者の識別に使用する必要があります)、例外が発生したファイル (file、例外が発生した PHP ファイル)、および例外が発生した特定の場所 (line、例外がスローされた行番号) )。

#例:

<?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 = &#39;Error on line &#39;.$this->getLine().&#39; in &#39;.$this->getFile()
 .&#39;: <b>&#39;.$this->getMessage().&#39;</b> is not a valid E-Mail address&#39;;
 return $errorMsg;
 }
 }
ログイン後にコピー

例外のスローとキャッチ:

try{
throw new customException("这是自定义异常。");
}
catch(customException $ex){
#some codes
}
ログイン後にコピー
4. 複数のキャッチによる例外のキャッチ

# try ステートメントでさまざまな例外がスローされる可能性がある場合、さまざまなタイプの例外をキャプチャするために、対応する複数の catch ブロックが存在する可能性があります。 Java と同じ注意点:

1. 大きな例外キャッチを後ろに置きます。例外がスローされると、どのキャッチが最初に満たされるかが順番に決定され、一度に 1 つのキャッチだけが実行されるためです。

2. try が実行されると、最大 1 つの catch が実行されます (例外が発生した場合)。つまり、前の catch が実行を満たした場合、後続の catch は考慮されません。

推奨チュートリアル:

PHP ビデオ チュートリアル

以上がPHP プロジェクトで例外クラスを設計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート