PHP 関数のベスト プラクティス: 例外処理とログ?

WBOY
リリース: 2024-05-04 12:06:02
オリジナル
1056 人が閲覧しました

例外処理とログは PHP 関数において非常に重要です。try/catch ブロックを通じて例外をキャッチし、カスタム例外をスローします。 PSR-3 や Monolog などのログ ライブラリを使用してイベントをログに記録し、重大度に基づいてログ メッセージをランク付けします。例外をログに記録して、より多くのコンテキストを提供し、入力エラーが発生した場合に適切なアクションを実行します。

PHP 函数的最佳实践:异常处理和日志记录?

PHP 関数のベスト プラクティス: 例外処理とログ記録

例外処理とログ記録は、堅牢で信頼性の高い Essential を記述する際に重要です。 PHPの関数。適切なテクノロジを使用すると、エラーを効果的に処理し、イベントをログに記録し、トラブルシューティングとデバッグのための貴重な洞察を提供できます。

例外処理

PHP の例外処理は、基本的に try/catch ブロックを使用して、コード内で発生する例外をキャッチして処理します。適切な例外処理メカニズムを構築する手順は次のとおりです。

try/catch ブロックを使用する:

try {
  // 您的代码在此处
} catch (Exception $e) {
  // 捕获异常后的处理逻辑
}
ログイン後にコピー

カスタム例外をスローする:

Use throw ステートメントはカスタム例外をスローし、エラーに関するより具体的な情報を提供します:

class CustomException extends Exception {}

function myFunction() {
  // 抛出自定义异常
  throw new CustomException("错误发生");
}
ログイン後にコピー

再試行メカニズムを使用します:

一部の一時的な例外については、Retry の使用を検討できます。リクエストを再試行するメカニズム:

$retries = 3;
$success = false;
for ($i = 0; $i < $retries; $i++) {
  try {
    // 您的代码在此处
    $success = true;
    break;
  } catch (Exception $e) {
    // 重试逻辑
  }
}
ログイン後にコピー

ログ記録

ログ記録は、システム内で発生するイベントを記録するために不可欠です。 PHP には、さまざまな目的に応じてさまざまなログ ファイルを作成するために使用できる組み込みのログ機能が用意されています。

PSR-3 ログ ライブラリの使用:

PSR-3 はい異なるロギング ライブラリ間の相互運用性を簡素化するための標準インターフェイスを定義するロギング仕様。 Monolog や PSR-3 ロギング ブリッジなどの一般的なライブラリを使用できます:

// Monolog 日志记录库
$logger = new Monolog\Logger('my_logger');
$logger->info('日志消息');

// PSR-3 日志记录桥
$logger = new \Psr\Log\LoggerInterface('my_logger');
$logger->info('日志消息');
ログイン後にコピー

さまざまなレベルのログを作成します:

ログに基づいてさまざまなレベルのログを作成できます。重大度 情報、警告、エラーなどのログ メッセージを分類します。

$logger->info('一般信息');
$logger->warning('潜在问题');
$logger->error('严重错误');
ログイン後にコピー

例外のログ記録:

例外をログ ファイルに記録して、エラーに関する最新情報を提供することもできます。 複数context:

try {
  // 您的代码在此处
} catch (Exception $e) {
  $logger->error($e);
}
ログイン後にコピー

実用的なケース

2 つの数値の合計を計算し、例外処理を使用して入力エラーを処理し、ロギングを使用して操作を記録する単純な関数を作成します。

function sum($a, $b) {
  // 检查非数字输入
  if (!is_numeric($a) || !is_numeric($b)) {
    throw new InvalidArgumentException("非法输入");
  }

  // 尝试进行求和
  try {
    $result = $a + $b;

    // 记录操作
    log_message('info', "计算 $a 和 $b 的和:$result");

    return $result;
  } catch (InvalidArgumentException $e) {
    log_message('error', $e->getMessage());
    throw $e;
  }
}
ログイン後にコピー

try/catch ブロックを使用し、カスタム例外をスローし、適切なログを記録することで、エラーが発生した場合でも貴重な情報を提供する、堅牢でデバッグが簡単な関数を作成できます。

以上がPHP 関数のベスト プラクティス: 例外処理とログ?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート