php では、 throw キーワードを指定した try catch ステートメントを使用して、プログラム内の例外をキャッチできます。プログラム コードで生成された例外は、try throw ステートメントによってスローされ、catch ステートメントによってキャプチャされます。構文「try{ //コード}catch(Exception $e){//出力エラー}」。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
プログラム内の例外をキャプチャしたいPHP では、実現するには try catch ステートメントと throw キーワードを使用する必要があります。 try catch ステートメントはフロー制御ステートメントに似ているため、try catch ステートメントを使用して代替の条件付き選択構造を実装でき、throw キーワードは例外をスローできます。 try catch ステートメントの構文形式は次のとおりです。
try{ // 可能出现异常或错误的代码,比如文件操作、数据库操作等 }catch(Exception $e){ // $e 为一个异常类的对象 // 输出错误信息 }
例外処理を必要とするコードは、考えられる例外をキャッチするために try コード ブロックに配置する必要があります。すべてのトライには少なくとも 1 つの対応するキャッチが必要です。複数のキャッチを使用して、さまざまなクラスによって生成された例外をキャッチします。
try コード ブロックが例外をスローしなくなった場合、またはスローされた例外に一致するキャッチが見つからない場合、PHP コードは最後のキャッチにジャンプした後、実行を続行します。
PHP コードで生成された例外は、throw ステートメントによってスローされ、catch ステートメントによってキャッチできます。もちろん、PHP では、catch ブロック内で例外を再度スローすることができます。
例外がスローされると、後続のコードは実行を続行せず、PHP は最初に一致するキャッチを引き続き見つけようとします。例外がキャッチされず、 set_Exception_handler() を使用して適切に処理されない場合、重大なエラーが生成され、UncaughtException... メッセージが出力されます。
[例] プログラム内の例外をキャッチするには、try catch と throw を使用します。
<?php try{ $err = '抛出异常信息,并跳出 try 语句块'; if(is_dir('./test')){ echo '这里是一些可能会发生异常的代码'; }else{ throw new Exception($err, 12345); // 抛出异常 } echo '上面抛出异常的话,这行代码将不会执行,转而执行 catch 中的代码。<br>'; }catch(Exception $e){ echo '捕获异常:'.$e->getMessage().'<br>错误代码:'.$e->getCode().'<br>'; } echo '继续执行 try catch 语句之外的代码'; ?>
実行結果は次のとおりです:
捕获异常:抛出异常信息,并跳出 try 语句块 错误代码:12345 继续执行 try catch 语句之外的代码
サンプル コードの try ステートメント ブロックで、現在のディレクトリに test という名前のディレクトリがあるかどうかを確認します。が存在しない場合は、7 行目のコードが実行され、throw キーワードを使用して例外がスローされます。この例外は、new キーワードによって生成された Exception クラスのオブジェクトであり、オブジェクトはエラー メッセージ $err とエラー コード 12345 で初期化されるため、後で例外がキャッチされたときにこの情報を取得できます (コード)。
例外がスローされると、try ステートメント ブロック内の残りのコードは実行を継続できなくなります。プログラム フローは、対応する catch ステートメント ブロックに転送されて実行され、最後にエラー情報とコードが表示されます。 Exception オブジェクトを通じてそのメンバー関数を呼び出すことによって出力されます。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPのtry catchステートメントの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。