PHP の例外処理クラス Exception_PHP の使い方と説明 チュートリアル

WBOY
リリース: 2016-07-21 15:18:02
オリジナル
794 人が閲覧しました

1. まず、php5 は、直接使用できる基本的な例外処理クラスを提供します。

コードをコピーする コードは次のとおりです。

class Exception
{
protected $message = '不明な例外'; // 例外情報
protected $code = 0; // 例外が発生したファイル名
protected $line; // 例外が発生したコード行番号
function __construct($message = null, $code = 0);
final function getMessage() // 例外情報を返す
final function getCode(); // 例外コードを返す例外が発生したファイル名
final function getLine(); // 例外が発生したコードの行番号を返す
final function getTrace() array
final function getTraceAsString();文字列にフォーマットされています
/* オーバーロード可能 Method*/
function __toString(); // 出力可能な文字列
?>


簡単な使用法は次のとおりです: (例外を通じてエラーメッセージをスローします)


コードをコピー
コードは次のとおりです: try {
$error = 'my error!';
throw new Exception($error)
} catch (Exception $e) {
echo $e-> ;getMessage();
}


2 、使いやすくするためにこのクラスを拡張できます


コードをコピーします
コードは次のとおりです: class MyException extends Exception
{
//メッセージを指定する必要があるプロパティにするためのコンストラクター
public function __construct($message, $code = 0) {
// カスタム コード
// すべての変数が正しく割り当てられていることを確認します
parent::__construct($message, $code );
}
// カスタム文字列の出力スタイル
public function __toString() {
return __CLASS__ . ": [{$this->message}]: {$this->message}n"; function customFunction() {
echo " このタイプの例外に対するカスタム関数n";
}
}


例外処理の基本的な考え方は、コードが try コードで呼び出されて実行されるということです。 try コード ブロックでエラーが発生した場合は、例外処理を実行できます。 Java などの一部のプログラミング言語は、特定の状況下で自動的に例外をスローします。 PHP では、例外を手動でスローする必要があります。次の方法で例外をスローできます:
Throw new Exception('message',code);
Throw キーワードは、関数ではなく言語構造ですが、値を渡す必要があります。それ。受信オブジェクトが必要です。最も単純なケースでは、組み込みの Exception クラスをインスタンス化できます。
最後に、try コードの後に​​、少なくとも 1 つの catch コード ブロックを指定する必要があります。複数の catch コード ブロックを try コード ブロックに関連付けることができます。各 catch ブロックが異なる種類の例外をキャッチできる場合は、複数の catch ブロックを使用するのが合理的です。たとえば、Exception クラスの例外をキャッチする場合、コードは次のとおりです



コードをコピーします

コードは次のとおりです:
Catch(Exception $e) { //例外処理
}
Catch コードによってキャプチャされたオブジェクトが例外の原因となり、オブジェクトが throw ステートメントに渡されます (throw ステートメントによってスローされます)。 Exception クラスのインスタンスを使用することは良い選択です。
Exception クラスは、次の組み込みメソッドを提供します:
Getcode() - コンストラクターに渡されたコードを返します。
GetMessage() — コンストラクターに渡されたメッセージを返します。
getFile() ——例外コードを生成したファイルのパスを返します。
getLine() ——例外を生成したコードが存在する行を返します。


注:
例外がキャッチされると、try() ブロックの後続のコードは実行を続行せず、一致する「キャッチ」コード ブロックを見つけようとします
例外がスローされると、キャッチ処理が行われない場合、「キャッチされない例外 'Exception'」エラーが報告されます


コードをコピーします

コードは次のとおりです:
function test($val){ if ($val>100 ){
throw new Exception("メッセージ: 入力した値が大きすぎます");
}
}
?>


3. 例外がスローされると、catch ステートメント ブロックが実行されます。処理される 処理する必要はありません
以下はユーザー登録機能のコードの一部です


コードをコピーしてください

コードは次のとおりです:

try{
//入力されたフォームを確認する
if(!filled_out($_POST)){
throw new Exception('フォームに入力していません。戻って入力してください')
}
/ /check メールアドレスが無効です
if(!check_email($email)){
throw new Exception('メールの形式が間違っています')
}
//密度の長さが 6 より大きいかどうかを確認します
; if(strlen($passwd<6)){
throw new Exception('密度の長さは 6 より大きい必要があります')
}
//2 つのパスワードが等しいかどうかを確認します
if($passwd!=$ passwd1){
throw new Exception('2 つのパスワードが異なります。もう一度入力してください');
}
//ユーザー名の長さが正しいかどうかを確認します
if(strlen($username)>16){
throw new Exception('ユーザー名の長さが一致しません。再入力してください');
}
} catch(Exception $e){
echo $e->getMessage(); //例外情報を出力します。
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/325575.html技術記事 1. まず、php5 は基本的な例外処理クラスを提供します。次のように、コピーしたコードを直接使用できます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート