ホームページ >バックエンド開発 >PHPチュートリアル >PHP例外の詳しい説明_PHPチュートリアル
PHP の例外は何ですか?
PHP 5 は、エラー処理に対する新しいオブジェクト指向アプローチを提供します。例外処理は、指定されたエラー (例外) 条件が発生したときにスクリプトの通常のフローを変更するために使用されます。この状況を例外と呼びます。
一般的な使用法:
[php]
関数テスト() {
新しい例外をスローします("例外");
}
試してみてください{
テスト();
} catch (例外 $e) {
エコー $e->getMessage();
}
throw new Exception('XXX'): 例外をスローします
try: 例外を使用する関数は、「try」コード ブロック内に配置する必要があります。例外がトリガーされない場合、コードは通常どおり実行を続行します。ただし、例外がトリガーされると、例外がスローされます。
Catch: コード ブロックは例外をキャッチし、例外情報を含むオブジェクトを作成します
カスタム例外クラス:
[php]
class myException extends Exception {
パブリック関数 errorMessage() {
$errorMsg = '.$this->getFile() の '.$this->getLine() 行でエラーが発生しました
.': '.$this->getMessage().' は有効な電子メール アドレスではありません
;
$errorMsg を返す
}
}
試してみてください{
新しい myException($email) をスローします
}キャッチ (myException $e){
エコー $e->errorMessage();
}
myException クラスは、Exception
を継承する必要があるカスタム例外クラスです。
Exception は、PHP に付属する組み込みの例外クラスです。デフォルトでは、PHP のデフォルトの組み込み例外クラスが使用されますが、カスタマイズによって独自のニーズを満たす例外クラスにカスタマイズできます。
カスタム例外クラスを使用する場合、 throw new myException もカスタム例外クラス名をスローする必要があります
キャッチするときは、カスタム例外クラスもキャッチする必要があります
例外がキャッチされずにスローされた場合、次のように PHP コードでエラーが発生します。
[SQL]
致命的なエラー: D:AppServwwwcctvtrunkindex.php:12 でキャッチされない例外 'myException' スタック トレース: #0 {main}
D:AppServwwwcctvtrunkindex.php の 12 行目にスローされます
PHP デフォルト例外クラスの詳細:
[php]
クラス例外
{
;
Protected $code = 0 //例外コードが定義されました
Protected $file; //例外が発生した PHP プログラムの名前
Protected $line; //例外が発生した PHP 行番号
//ユーザー定義の例外情報とユーザー定義の例外コードを渡すために使用されるコンストラクター
関数 __construct($message=null,$code=0);
最終関数 getMessage();
最終関数 getCode();
最終関数 getFile();
最終関数 getLine();
最終関数 getTrace() // 例外配信ルートを配列で返す
最終関数 getTraceAsString(); // getTrace 関数の情報を文字列として返します
Function __toString(); //オーバーロード可能、出力文字列を返すために使用されます
}
PHP のデフォルト例外クラスには多くのカスタム変数とメソッドがあることがわかります
$e->getMessage は通常、エラー情報を取得します
$e->getCode() は通常、エラーコードを取得します
$e->getFile() が間違ったファイル情報を取得します
$e->getLine() エラー行数を取得
$e->getTrace() 例外によって渡されたファイルパス
__toString() は通常、出力文字列を返すようにオーバーロードできます
PHP 例外クラスの役割:
例外をキャプチャするには、通常、MYSQL 接続が失敗するかビジネス ロジックが間違っているときに例外をスローし、コードの先頭で例外を受け取ることができます。
例外の分析と処理。例外が発生した場合、異常なエラー情報を取得してログに書き込むことができます。
わかりやすいプロンプト情報を返すことができます。たとえば、WEB 側でページ フォームを返すことも、AJAX 側で JSON データ形式を返すこともできます。
原則: 例外がスローされた場合は、それをキャッチする必要があります。そうしないと、PHP がエラーを報告します。
作者: initphp