PHP エラー処理: 例外をキャッチして処理する方法
はじめに:
開発プロセス中、さまざまなエラーや例外に遭遇することがよくあります。 PHP の場合、エラーと例外の処理は、コードの堅牢性と信頼性を確保するための重要なタスクです。この記事では、PHP で例外をキャッチして処理する方法、およびエラー発生時に便利なプロンプトを表示する方法を説明します。
1. エラーと例外の概要
PHP では、エラーと例外は 2 つの異なる概念です。エラーは通常、構文エラー、メモリ オーバーフローなど、PHP インタープリタまたは基盤となるシステムによって発生します。例外は通常、未定義の変数の使用、存在しないファイルを開いたなど、独自のコードによって発生します。エラーまたは例外が発生すると、PHP インタープリターは適切なエラー ハンドラーまたは例外ハンドラーを見つけようとします。
2. エラー処理
コード内で error_reporting()
関数を使用して、エラー報告レベルを設定できます。たとえば、
// 显示所有错误、警告和提示信息 error_reporting(E_ALL);
Customエラー処理プログラム
PHP では、デフォルトのエラー処理メソッドの代わりにエラーを処理するようにエラー ハンドラーをカスタマイズできます。以下に示すように、set_error_handler()
関数を使用してカスタム エラー ハンドラーを設定できます。
// 自定义错误处理程序 function customError($errno, $errstr, $errfile, $errline) { echo "<b>Error:</b> [$errno] $errstr - $errfile:$errline"; } // 设置自定义错误处理程序 set_error_handler("customError");
カスタム エラー ハンドラーでは、エラー ハンドラーを設定できます。エラー レベルに基づいてエラー メッセージに基づいて対応するアクション (エラー ログの記録、電子メールの送信など) を実行します。
3. 例外処理
例外のスロー
PHP では、throw
ステートメントを使用して例外をスローできます。すでに定義されている例外クラスをスローすることも、新しい例外クラスを作成することもできます。以下は、例外をスローするサンプル コードです。
// 抛出一个已定义的异常 throw new Exception("Something went wrong."); // 创建一个新的异常类并抛出 class CustomException extends Exception { public function __construct($message, $code = 0, Throwable $previous = null) { parent::__construct($message, $code, $previous); } } throw new CustomException("Something went wrong.");
例外のキャッチ
PHP では、try...catch
ステートメントを使用して例外をキャッチできます。そしてそれを異常に扱います。 try
コード ブロック内のコードは例外を検出する必要があるコードであり、catch
コード ブロック内のコードは例外が発生したときに実行されるコードです。以下は例外をキャッチするためのサンプル コードです。
try { // 检测可能会发生异常的代码 throw new Exception("Something went wrong."); } catch (Exception $e) { // 处理异常 echo "Caught exception: " . $e->getMessage(); }
コード ブロックでは、例外オブジェクトのメソッドを使用して例外情報を取得できます。 getMessage()
メソッドなどで例外情報を取得できます。
catch
コード ブロックを使用して、さまざまな種類の例外をキャッチできます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>try {
// 检测可能会发生异常的代码
throw new Exception("Something went wrong.");
} catch (CustomException $e) {
// 处理自定义异常
echo "Caught custom exception: " . $e->getMessage();
} catch (Exception $e) {
// 处理其他异常
echo "Caught exception: " . $e->getMessage();
}</pre><div class="contentsignin">ログイン後にコピー</div></div>上記のコードでは、 がスローされた場合 CustomException<p> タイプの例外は最初の <code>catch
コード ブロックに入ります。他のタイプの例外がスローされた場合は、2 番目の catch
コード ブロックに入ります。 4. エラーおよび例外処理のベスト プラクティス
カスタム エラー ハンドラーを使用する: エラーをより適切に追跡および記録するには、カスタム エラー ハンドラーを使用し、問題追跡のためにエラー情報をログに記録することをお勧めします。
上記は、PHP のエラー処理と例外処理について簡単に説明したものです。お役に立てれば幸いです。
以上がPHP エラー処理: 例外をキャッチして処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。