ホームページ  >  記事  >  バックエンド開発  >  phpエラーハンドリングの事前学習(引き継ぎ)

phpエラーハンドリングの事前学習(引き継ぎ)

WBOY
WBOYオリジナル
2016-06-13 13:07:58789ブラウズ

PHP例外処理(転送)の事前学習
/**
* PHP 例外処理
*
* PHP 5 には、他の言語と同様の例外処理モジュールが追加されています。 PHP コードで生成された例外は、throw
* ステートメントによってスローされ、catch ステートメントによってキャッチされます。例外処理を必要とするコードは、考えられる例外を
* キャッチするために try コード ブロックに配置する必要があります。すべてのトライには少なくとも 1 つの対応するキャッチが必要です。複数の catch
* を使用して、さまざまなクラスによって生成された例外をキャッチします。 try コード ブロックが例外をスローしなくなった場合、または
* によってスローされた例外に一致するキャッチが見つからなかった場合、PHP コードは最後のキャッチにジャンプした後、実行を続行します。もちろん、PHP
* では、catch ブロック内で例外を再度スローすることができます。
* 例外がスローされると、後続のコード (翻訳者注: 例外がスローされたときのコード ブロックを指します) は
* の実行を続行せず、PHP は一致する最初の A catch を見つけようとします。それ。例外がキャッチされず、
* が対応する処理に set_Exception_handler() を使用しない場合、PHP は
* 重大エラーを生成し、「キャッチされていない例外...」(キャッチ例外ではない) プロンプト情報を出力します。
*/
?>

/**
* Exception.php
*
*PHP5 の組み込み例外クラスの属性とメソッド
* 次のコードは、組み込み例外処理クラスの構造を示すだけのものです。実用的に重要なパラグラフ。
*/

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

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

//オーバーロード可能なメソッド
function __toString(); // 出力可能な文字列
}
?>

/**
* 構文 .php
*/

//文法構造と分析

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

//[1]try...catch...
try {
/ /データベース エラーやファイル エラーなどの異常な操作を実行します
}catch (Exception $e){
//エラー メッセージを出力します ログを書き込むか、後で処理します
}

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

throw new Exception($message,$code);

//JAVA を学習する場合、PHP の例外処理には throws がないことに注意してください
?>
/**
* Example.php
*/
//PHP 例外処理をマスターするための 2 つの例


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

//例 [2] try..cathc と throw together
try {
$error = '例外情報をスローし、try ブロックから飛び出す';
if(is_dir('./tests')){
echo 'do sth.';
}else{
throw new Exception($error,12345 );
}
echo '上に異常があれば私の番ではありません! ~
',"n";
} catch (Exception $e) {
echo '例外をキャッチ: ', $e->getMessage(),$e->getCode( ), "n
"; //$error と 123456
}
echo '続行';
?> を表示します。

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