「PHP と MySQL Web 開発」のメモ集を読んでください:
1. 例外処理の概念
1) 例外処理は try コード ブロックで呼び出され、実行されます
try
{
// コードはここにあります
}
2) PHP では、例外は手動でスローする必要があります
throw new Exception('message',code); これは関数ではなく言語構造です。
他のオブジェクトは throw 句で渡すことができます。
3) try コード ブロックの後に、少なくとも 1 つの catch コード ブロックを指定する必要があります。
catch (タイプヒント例外)
{
// 例外を処理します
}
複数の catch コード ブロックを 1 つの try コード ブロックに関連付けることができます。
例:
try { throw new Exception("ひどいエラーが発生しました", 42) ; キャッチ (例外 $e) { echo ". $e->getCode(). ": ". $e->getMessage()." ". getFile(). $e->getLine(). " } ; 2. 例外クラス
例外
(PHP 5 >= 5.1.0)
概要 Exception はすべての例外の基本クラスです。
クラスの概要
Exception { /* プロパティ */ protectedstring $message protectedint $code ; protectedstring $file ; protectedint $line /* メソッド* / public __construct ([ string $message = "" [, int $code = 0 [, Exception$previous = NULL ]]] ) Final public string getMessage ( void ) Final public Exception getPrevious ( void ) a Final Public Int GetCode (VOID) Final Public String Getfile (VOID) Final Public Int Getline (VOID) Final Public Array Gettrace P p Final Public String Gettraceasstring (VOID) Public String __toString (void) Final private void __clone ( void ) } 属性 message 例外メッセージの内容 コード 例外コード ファイル 例外がスローされたファイル名 line
ファイルで例外がスローされた行番号 テーブル目次 Exception::__construct — 例外コンストラクター Exception::getMessage — 例外メッセージの内容を取得する Exception::getPrevious — 例外チェーン内の前の例外を返す Exception: :getCode — 例外コードを取得する - Exception::getFile — 例外が発生したプログラム ファイルの名前を取得します
- Exception::getLine — ファイル内の例外コードの行番号を取得します
- Exception::getTrace — 例外追跡情報を取得します
- Exception ::getTraceAsString — 文字列型の例外トレース情報を取得します
- Exception::__toString — 例外オブジェクトを文字列に変換します
- Exception::__clone — 例外の複製
-
-
-
3. ユーザー定義の例外 ユーザーは、Exception クラスを拡張して独自の例外クラスを作成できます。 Exception クラスのほとんどのパブリック メソッドはfinalであり、オーバーロードできないことに注意してください。独自の Exception サブクラスを作成できますが、これらの基本メソッドの動作は変更できません。ただし、__toString() 関数はオーバーロードされる可能性があることに注意してください。 例:
<?php php
class class myexceptionは例外を拡張します。 ".$this->getFile()。" | } catch (myException $m) { echo $m; } ?>
4. I/O 部分と提案 I/O 部分は例外が発生しやすいものです。一般に、適切なコーディング習慣では、try コード ブロックのコード量が少なく、関連する例外がコード ブロックの最後でキャッチされることが必要です。 。 注: 一致する catch ステートメント ブロックがない場合、PHP は致命的なエラーを報告します。 例:
// 追加するファイルを開く try { if (!($fp = @fopen("$DOCUMENT_ROOT/../orders/orders.txt", ' ab')))) if (!fwrite($fp, $outputstring, strlen($outputstring))) throw new fileWriteException(); fclose($) fp); echo " gt;注文が書き込まれました。& lt;/ p>" } catch (fileOpenException $foe) { echo "注文ファイル開けませんでした。 ウェブマスターに問い合わせてください。";
} catch (Exception $e) { echo "< Strong&gt;あなたの注文は現時点では処理できませんでした。エラー処理メカニズム PHP は、例外処理や @error 抑制などの複雑なエラー処理メカニズムも提供します。 例: if (!($fp = @fopen("$DOCUMENT_ROOT/../orders/orders.txt", 'ab'))) throw new fileOpenException(); この関数呼び出しが失敗すると、PHP は php.ini の設定に従ってエラー レポートまたはログを出力します。 |
|
|