ホームページ >バックエンド開発 >PHPチュートリアル >PHP例外:エラー処理のためにキャッチを試してください

PHP例外:エラー処理のためにキャッチを試してください

Jennifer Aniston
Jennifer Anistonオリジナル
2025-03-07 10:20:10603ブラウズ

このチュートリアルでは、

ブロックを使用したPHP例外処理について説明しています。 PHP 5で導入されたこのアプローチは、古い方法と比較して優れたエラー管理とアプリケーションフロー制御を提供します。基本をカバーし、実用的な例で説明します try-catch

例外を理解する

PHP 5では、例外が投げられてキャッチすることを可能にする新しいエラーモデルを導入しました。これにより、エラー処理が大幅に向上します。すべての例外は、カスタム例外のために拡張可能な

ベースクラスのインスタンスです。

例外処理はエラー処理とは異なります。エラー処理では、カスタムエラー関数の場合はExceptionを使用して、エラートリガーに呼び出されます。 ただし、一部のエラーは回復できず、実行を停止します。

例外は、逆に、意図的に投げられ、捕まると予想されます。それらは回復可能です。捕まった場合、プログラムの実行が再開されます。 猛攻撃の例外により、エラーが発生し、実行が停止します set_error_handler

例外処理フロー

次の図は、典型的な例外処理フローを示しています

phpの

および

ブロックは、ハンドルの例外をブロックします。予期しないイベントが発生したときに例外を投げます。 基本的なフローは次のとおりです PHP Exceptions: Try Catch for Error Handling

このパターンは一般的です。 例外に関係なく、常に実行されるコードに対して

ブロックを追加できます。 trycatchブロックは、例外を生成する可能性のあるコードを囲みます。 常にそのようなコードを

// Code before try-catch
try {
  // Code
  // If something unexpected happens
      // throw new Exception("Error message");
  // Code (not executed if exception thrown)
} catch (Exception $e) {
  // Exception handled here
  // $e->getMessage() gets the error message
}
// Code after try-catch (always executed)

スロー例外finally

例外は、呼び出された関数によってスローされるか、tryキーワードを手動で使用することができます。 たとえば、入力を検証し、無効な場合は例外をスローします。 try...catch未処理のスローされた例外は致命的なエラーを引き起こします。 例外をスローするときは、必ず

ブロックを含めます

ブロックのオブジェクトは、スローされたエラーメッセージを保持します。 このブロック内でエラー処理ロジックを実装します

実世界の例throw

catchからアプリケーションロード構成を作成しましょう。 アプリケーションにはこのファイルが必要です。その不在は例外的なケースです。

catchこれはExceptionをチェックします。 見つかった場合、実行が進行します。それ以外の場合、例外は実行を停止します。 例外は、無効なログインのような頻繁なエラーではなく、本当に例外的な状況に使用する必要があります。

カスタム例外の作成

クラスを拡張して、カスタム例外を作成します。 前の例を改善しましょう:config.php

// Code before try-catch
try {
  // Code
  // If something unexpected happens
      // throw new Exception("Error message");
  // Code (not executed if exception thrown)
} catch (Exception $e) {
  // Exception handled here
  // $e->getMessage() gets the error message
}
// Code after try-catch (always executed)

ConfigFileNotFoundExceptionException。 これで、特定のcatchブロックは、さまざまな例外タイプを処理します。 最後のcatchブロックは、一般的な例外を処理します。

ブロックfinally

ブロックは例外に関係なく実行されます。 リソースのクリーンアップに最適です(たとえば、データベース接続を閉じる)。finally

<?php
try {
    $config_file_path = "config.php";
    if (!file_exists($config_file_path)) {
      throw new Exception("Configuration file not found.");
    }
    // Continue bootstrapping
} catch (Exception $e) {
    echo $e->getMessage();
    die();
}
?>
効果的な例外処理が重要です。 エラーの検出と回復を改善するために、開発中の例外処理の計画

結論 このチュートリアルでは、

ブロックを備えたPHP例外処理をカバーしました。 基本を調査し、実用的な例を作成し、カスタム例外作成を実証しました。 本当に例外的な状況には例外を慎重に使用することを忘れないでください

以上がPHP例外:エラー処理のためにキャッチを試してくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。