ホームページ >バックエンド開発 >PHPチュートリアル >Examples を使用して PHP5 例外処理を分析する_PHP チュートリアル

Examples を使用して PHP5 例外処理を分析する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:52:52858ブラウズ

<?php
/**
* ■PHP5における例外処理
*
* PHP 5 では、他の言語と同様の例外処理モジュールが追加されています。 PHP コードで生成された例外はスローされる可能性があります
* ステートメントがスローされ、catch ステートメントによってキャッチされます。例外処理を必要とするコードは、try コード ブロック内に配置して
する必要があります。 * 考えられる例外をキャッチします。すべてのトライには少なくとも 1 つの対応するキャッチが必要です。複数のキャッチを使用する
* 異なるクラスによって生成された例外をキャッチできます。 try コード ブロックが例外をスローしなくなった場合、または一致する catch が見つからなかった場合
* 例外がスローされると、PHP コードは最後のキャッチにジャンプした後、実行を継続します。もちろんPHP
* catch ブロック内で例外を再度スローできるようにします。
* 例外がスローされると、後続のコードは続行されません
* が実行され、PHP は最初に一致するキャッチを見つけようとします。例外がキャッチされず、
* 対応する処理に set_Exception_handler() を使用する必要がない場合、PHP は
を生成します ※重大なエラーとなり、プロンプトメッセージUncaught Exception...(キャッチされない例外)が出力されます。
*/
?>
<?php
/**
* Exception.php
*
* ■㈡PHP5の組み込み例外クラスの属性とメソッド
* 以下のコードは、組み込みの例外処理クラスの構造を説明するためのものであり、実際に使用できるコードではありません。
*/

クラス例外{
protected $message = '不明な例外' // 例外メッセージ
; protected $code = 0 // ユーザー定義の例外コード
; protected $file; // 例外が発生したファイル名
protected $line; // 例外が発生したコード行番号

関数 __construct($message = null, $code = 0); 最終関数 getMessage(); // 例外メッセージを返す
Final function getCode(); // 例外コード(コード名)を返す
Final function getFile(); // 例外が発生したファイル名を返します
Final function getLine(); // 例外が発生したコード行番号を返します
最終関数 getTrace() // backtrace() 配列
Final function getTraceAsString(); // 文字列にフォーマットされた getTrace() 情報

オーバーロード可能なメソッド

function __toString(); // 出力可能な文字列
}

?>

<?php
/**
* 構文 .php
*/

//■㈢文法構造と分析

//PHP には次の 2 つの例外スロー形式があります

//【1】試して...捕まえて...
{
を試してください //データベースエラーやファイルエラーなどの異常な操作を実行します
}キャッチ (例外 $e){
//エラーメッセージを出力します
}

//【2】投げる

$message='I は try{} ブロックで実行する必要があります。例外が発生した場合、I ($message) は上記の $e などの catch() の例外オブジェクトのインスタンスに返されます (渡されます)。
$code=123; //エラー コード番号。catch ブロックで $e->getCode(); を使用すると、エラー コード番号をカスタマイズできます

新しい例外をスローします($message,$code)

//JAVA を学習する際は、PHP の例外処理にはスローがないことに注意してください

?>

<?php

/**
* Example.php
*/
//■㈣PHP 例外処理をマスターするための 2 つの例


//例 [1] try...catch を使用します
/* PDO は mysql データベースに接続します。PDO をまだ見ていない場合は、まず PDO のコンストラクターを参照するか、例 1 をスキップして例 2 を参照してください */
$dsn = 'mysql:host=localhost;dbname=testdb'; $user = 'dbuser'; $パスワード = 'dbpass';
{
を試してください $dbh = new PDO($dsn, $user, $password); //データベース接続オブジェクトの作成では例外が発生する傾向があります
echo '上記の例外がある場合は表示されません'; } キャッチ (PDOException $e) {
echo '接続に失敗しました: ' $e->__toString(); }
?>

<?php
//例[2] try..cathcとthrowを併用しています
{
を試してください $error = '例外メッセージをスローし、try ブロックから飛び出しました'; if(is_dir('./tests')){
echo 'do sth.'; }その他{
新しい例外をスローします($error,12345); }
echo '上記に例外がある場合は、私の番ではありません! ~<br />',"n"; } catch (例外 $e) {
echo '例外をキャッチ: ', $e->getMessage(),$e->getCode(), "n<br />" //$error と 123456 を表示します
; }
echo '実行を継続'
?>

<?php
//JAVA には例外クラスやスローなどが多すぎるため、PHP の処理は JAVA よりもはるかに簡単に学習できます
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/371514.html技術記事
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。