失敗時に警告をスローする dns_get_record などの PHP 関数を扱う場合、try/catch ブロックは効果的な解決策ではありません。ただし、警告を処理する別の方法もあります。
set_error_handler() を使用してカスタム エラー ハンドラーを一時的に設定し、警告を無視することができます。 API 呼び出し後、restore_error_handler() を使用して以前のハンドラーを復元します。
set_error_handler(function() { /* ignore errors */ }); dns_get_record(); restore_error_handler();
カスタム エラー ハンドラーを設定し、ErrorException クラスを利用することで、PHP エラーを変換できます例外へ:
set_error_handler(function($errno, $errstr, $errfile, $errline) { // exclude suppressed errors if (0 === error_reporting()) { return false; } throw new ErrorException($errstr, 0, $errno, $errfile, $errline); }); try { dns_get_record(); } catch (ErrorException $e) { // ... }
@ 演算子を使用して警告を抑制することは可能ですが、潜在的な問題が隠れてしまう可能性があるため、通常は推奨されません。代わりに、dns_get_record() の戻り値をチェックして、エラーが発生したかどうかを確認してください。
PHP で警告を処理するときは、選択したアプローチのコンテキストと結果を考慮することが重要であることを覚えておいてください。
以上が「try/catch」を使用せずに「dns_get_record()」などの PHP 関数からの警告を効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。