ホームページ >バックエンド開発 >PHPチュートリアル >php の try catch でキャプチャされる例外例の詳細な説明、trycatch_PHP チュートリアル
この記事の例では、php で例外をキャッチする try catch について説明します。参考のためにみんなで共有してください。具体的な手法の分析は次のとおりです:
php で catch を試すと、プログラム コードで例外をキャッチできるため、不要なエラーをうまく処理できるようになります。興味のある方はぜひご覧ください。
PHP の try{}catch{} ステートメントの概要
PHP5 には、他の言語と同様の例外処理モジュールが追加されています。 PHP コードで生成された例外は、throw ステートメントでスローし、catch ステートメントでキャッチできます。 (注: 取得するには最初に投げる必要があります)
例外処理を必要とするコードは、考えられる例外をキャッチするために try コード ブロックに配置する必要があります。
すべてのトライには、少なくとも 1 つの対応するキャッチが必要です。
複数のキャッチを使用して、さまざまなクラスによって生成された例外をキャッチします。
try コード ブロックが例外をスローしなくなった場合、またはスローされた例外に一致するキャッチが見つからない場合、PHP コードは最後のキャッチにジャンプした後、実行を続行します。
もちろん、PHP では、catch ブロック内で例外を再度スローすることができます。
例外がスローされると、後続のコード (翻訳者注: 例外がスローされたコード ブロックを指します) は実行を続行せず、PHP は最初に一致するキャッチを見つけようとします。
例外がキャッチされず、対応する処理に set_Exception_handler() を使用する必要がない場合、PHP は重大なエラーを生成し、Uncaught Exception... (キャッチされない例外) プロンプト メッセージを出力します。
まず、PHP の組み込み例外クラスの基本的なプロパティとメソッドを見てみましょう。 (特定の実装を除く)
さらに例外を処理するには、PHP で try{}catch{} を使用する必要があります。これには Try ステートメントと少なくとも 1 つの catch ステートメントが含まれます。例外をスローする可能性のあるメソッドを呼び出すコードはすべて、try ステートメントを使用する必要があります。 Catch ステートメントは、スローされる可能性のある例外を処理するために使用されます。以下は、getCommandObject() によってスローされた例外を処理する方法を示しています。
例外がスローされた場合、try ステートメントのスクリプトは実行を停止し、すぐに catch ステートメントのスクリプトの実行に切り替わります。
例は次のとおりです:インクルードファイルエラーにより例外がスローされる
試してみてください{
if (file_exists('test_try_catch.php')) {
require ('test_try_catch.php');
} その他 {
throw new Exception('ファイルが存在しません');
}
} catch (例外 $e) {
echo $e->getMessage();
}
複数のキャッチは複数の例外をキャプチャします
PHP は一致する catch ブロックをクエリします。複数の catch ブロックがある場合、PHP がどの catch ブロックに入る必要があるかを見つけられるように、各 catch ブロックに渡されるオブジェクトは異なる型である必要があります。 try コード ブロックが例外をスローしなくなった場合、またはスローされた例外に一致するキャッチが存在しない場合、PHP コードは最後のキャッチにジャンプした後、実行を継続します。複数の例外をキャッチする例は次のとおりです:
上記のコードでは、2 つの例外処理クラスを使用できます。1 つはカスタム例外処理クラス MyException、もう 1 つは PHP の組み込み例外処理クラス Exception です。 try ブロック内でテスト クラス TestException のオブジェクトをそれぞれ作成し、構築メソッドで提供されるさまざまな数値パラメーターに従って、カスタム例外クラス オブジェクト、組み込み例外クラス オブジェクトをスローし、例外をスローせずに、対応する例外クラス オブジェクトにジャンプします。 catch ブロックで実行されます。例外が発生しない場合、実行のための catch ブロックには入らず、テスト クラス TestException のオブジェクトが正常に作成されます
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。