ホームページ  >  記事  >  バックエンド開発  >  php Try Catch 例外 testing_PHP チュートリアル

php Try Catch 例外 testing_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:48:151324ブラウズ

c の C1 はページ try catch で使用され、b の b1 は c1 で使用され、a の a1 は b1 で使用されます。

デフォルトは、a1 で例外をスローし、b1 で a1 の例外をキャッチしてから、先ほど例外をスローし、c1 がそれ​​をキャッチしてスローし、最後にページがそれをキャプチャして出力します。
結果は次のようになります:
X-Powered-By: PHP/5.1.1
Content-type: text/html

#0 D:workspacemyzCollectiontest.php(16): a->a1()
#1 D:workspacemyzCollectiontest.php(28): b->b1()
#2 D:workspacemyzCollectiontest.php(37) : c->c1()
#3 C:Program FilesZendZendStudio-5.2.0binphp5dummy.php(1): include('D:workspacemy...')
#4 {main}end

2 番目のテスト:
b1 の throw $e を削除すると、スローされなくなります。
結果は次のようになります:
X-Powered-By: PHP/5.1.1
Content-type: text/html

終了

3 番目のテスト:
b1 で throw new Exception($e->getMessage()); をオンにします。
b1 より上の呼び出しが a1 の例外を取得できないように、新しい例外をスローします。
結果は次のようになります:
X-Powered-By: PHP/5.1.1
Content-type: text/html

#0 D:workspacemyzCollectiontest.php(28): b->b1()
#1 D:workspacemyzCollectiontest.php(37): c->c1()
#2 C:Program FilesZendZendStudio-5.2.0binphp5dummy .php(1): include('D:workspacemy...')
#3 {main}end

4 番目のテスト:
B1 のトライ キャッチ スローをすべて削除します。
結果: すべて正常です。つまり、中間ステップをスローする必要はなく、最上位層は最下位層によってスローされた例外を受け取ることもできます。
b に例外がある場合、それを取得する方法がありません。b を検出する必要がある場合は、b
X-Powered-By: PHP にも try catch を追加する必要があります。 /5.1.1
コンテンツタイプ: text/html

#0 D:workspacemyzCollectiontest.php(16): a->a1()
#1 D:workspacemyzCollectiontest.php(28): b->b1()
#2 D:workspacemyzCollectiontest.php(37) : c->c1()
#3 C:Program FilesZendZendStudio-5.2.0binphp5dummy.php(1): include('D:workspacemy...')
#4 {main}end

class a {
public function a1 () {
try {
throw new Exception('123');
} catch (Exception $e) {
throw $e;
}
}
}

class b {
public function b1 () {
try {
$a = new a();
$a->a1();
} catch (Exception $e) {
throw $e;
// throw new Exception($e->getMessage());
}
}
}

class c {
public function c1 () {
try {
$a = new b();
$a->b1();
} catch (Exception $e) {
throw $e;
}
}
}

try {
$c = new c();
$c->c1();
} catch (Exception $e) {
echo $e->getTraceAsString();
}
echo 789;

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/319773.html技術記事 try catch のページでは、c の c1 が使用され、c1 では b の b1 が使用され、b1 では a の a1 が使用されます。 デフォルトは: a1 で例外をスローし、b1 で a1 の例外をキャッチし、次に今例外をスローして c1 でキャッチし、...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。