以下は、PHP での例外処理の方法の紹介です。例外処理を学ぶ必要がある人は、このチュートリアルを参照してください。
以下は引用です:
1. メソッドがクライアント コードにエラー フラグを与えることを許可します
2. プログラムエラーに関する詳細情報を提供します
3. 複数のエラー条件を同時に判断し、エラー報告とプログラム処理フローを分離できます。
4. 戻り値は独立した型である必要があり、通常返される型と混同されません
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();
}
?>
例
|
コードは次のとおりです
コードをコピー
|
//例[2] try..cathcとthrowを併用しています
{
を試してください
$error = '例外メッセージをスローし、try ブロックから飛び出しました';
if(is_dir('./tests')){
echo 'do sth.';
}その他{
新しい例外をスローします($error,12345);
}
echo '上記に例外がある場合は、私の番ではありません! ~ ',"n";
} catch (例外 $e) {
echo '例外をキャッチ: ', $e->getMessage(),$e->getCode(), "n " // $error と 123456 を表示します
}
echo '実行を継続'
?>
友人が上で言ったので、練習するために自分でいくつかのプログラムを書いてみます:
以下はコードスニペットです:
コードは次のとおりです |
コードをコピー |
$a = 20;
//通常の catch の使用例
試してみてください
{
if($a == 1)
{
throw new Exception("I am 1", 1);
}
elseif ($a == 2)
{
throw new Exception("I am 2", 3);
}
elseif ($a == 3)
{
新しい例外をスローします("I am 3", 3);
}
elseif ($a == 4)
{
throw new Exception("I am 4", 4);
}
それ以外
{
throw new Exception("私は誰ですか?", 0);
}
}
catch (例外 $e)
{
if($e->getCode() == 1)
{
echo "1 : ".$e;
}
elseif ($e->getCode() == 2)
{
echo "2 : ".$e;
}
elseif ($e->getCode() == 3)
{
echo "3 : ".$e;
}
elseif ($e->getCode() == 4)
{
echo "4 : ".$e;
}
それ以外
{
echo "0 : ".$e;
}
}
エコー「 」
-------------------------------------------------- ----------------------------------
";
//さまざまな拡張例外クラスの使用例
クラス A は例外を拡張します{};
クラス B は例外を拡張します{};
試してみる
{
if($a == 1)
{
throw new A("I am A", 1);
}
elseif ($a == 2)
{
throw new B("I am B", 2);
}
それ以外
{
throw new Exception("私は誰ですか?", 0);
}
}
キャッチ(A$e)
{
echo "1 : ".$e;
}
キャッチ(B$e)
{
echo "2 : ".$e;
}
catch (例外 $e)
{
echo "0 : ".$e;
}
?>
|
出力は次のようになります:
以下は引用です:
0 : 例外 'Exception' とメッセージ 'Who am I?' が D:WebPHPWWWnewtest.php:24 で発生しました スタック トレース: #0 {main}
-------------------------------------------------- ----------------------------------
0 : D:WebPHPWWWnewtest.php:69 の例外「例外」メッセージ「私は誰ですか?」スタック トレース: #0 {main}
|
http://www.bkjia.com/PHPjc/629027.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/629027.html技術記事 PHP での例外処理の方法を紹介します。例外処理を学習する必要がある人は、このチュートリアルを参照してください。 以下は引用です: 1. メソッドに出力を与えることを許可します...