ホームページ >バックエンド開発 >PHPチュートリアル >PHPマスターアドバンストライキャッチ
PHP 5 では、他の言語と同様の例外処理モジュールが追加されています。 PHP コードで生成された例外は、 throw ステートメントによってスローされ、catch ステートメントによってキャプチャされます。 (注: 取得するには最初にスローする必要があります)
例外処理を必要とするコードは、発生する可能性のある例外をキャッチするために try コード ブロックに配置する必要があります。
各試行には少なくとも 1 つの対応するキャッチが必要です。
複数のキャッチを使用して、さまざまなクラスによって生成された例外をキャッチします。
try コード ブロックが例外をスローしなくなった場合、またはスローされた例外に一致するキャッチが見つからない場合、PHP コードは最後のキャッチにジャンプした後、実行を続行します。
もちろん、PHP では、catch コード ブロック内で例外を再度スローすることができます。
例外がスローされると、後続のコード (翻訳者注: 例外がスローされたときのコード ブロックを指します) は実行を続行せず、PHP は最初に一致するキャッチを見つけようとします。
例外がキャッチされず、対応する処理に set_Exception_handler() を使用する必要がない場合、PHP は重大なエラーを生成し、Uncaught Exception... (キャッチされない例外) を出力します。早速の情報。
まず、PHP の組み込み例外クラスの基本的なプロパティとメソッドを見てみましょう。 (特定の実装を除く)
<?php /** * Exception.php * * PHP5内置的异常类的属性与方法 * 以下这段代码只为说明内置异常处理类的结构,它并不是一段有实际意义的可用代码。 */ class Exception{ protected $message = 'Unknown exception'; // 异常信息 protected $code = 0; // 用户自定义异常代码 protected $file; // 发生异常的文件名 protected $line; // 发生异常的代码行号 function __construct($message = null, $code = 0); final function getMessage(); // 返回异常信息 final function getCode(); // 返回异常代码(代号) final function getFile(); // 返回发生异常的文件名 final function getLine(); // 返回发生异常的代码行号 final function getTrace(); // backtrace() 数组 final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息 //可重载的方法 function __toString(); // 可输出的字符串 } ?>
例は次のとおりです。
インクルード ファイル エラーが例外をスローする
<?php // 错误的演示 try { require ('test_try_catch.php'); } catch (Exception $e) { echo $e->getMessage(); } // 正确的抛出异常 try { if (file_exists('test_try_catch.php')) { require ('test_try_catch.php'); } else { throw new Exception('file is not exists'); } } catch (Exception $e) { echo $e->getMessage(); }
その他のチュートリアル: "php チュートリアル"
以上がPHPマスターアドバンストライキャッチの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。