ホームページ > バックエンド開発 > PHPチュートリアル > PHP 関数は例外処理を使用できますか?例外をスローしてキャッチするにはどうすればよいですか?

PHP 関数は例外処理を使用できますか?例外をスローしてキャッチするにはどうすればよいですか?

WBOY
リリース: 2024-04-16 21:24:02
オリジナル
383 人が閲覧しました

PHP 関数は、例外をスロー (throw) およびキャッチ (catch) することによって実行時エラーと例外を処理します。エラーまたは例外情報を含む例外オブジェクトをスローするには、throw キーワードを使用します。 try-catch ステートメントを使用した例外のキャッチ: try ブロックには、例外をスローする可能性のあるコードが含まれています。 catch ブロックは、スローされた例外を処理するために使用されます。

PHP 函数可以使用异常处理吗?如何抛出和捕获异常?

#PHP 関数は例外をスローおよびキャッチする

はじめにPHP では、関数はランタイムを処理できます。例外処理メカニズムによるエラーと例外。例外をスローおよびキャッチすることにより、コードの保守性と堅牢性を向上させることができます。

例外をスローする
throw キーワードを使用して例外をスローできます。例外は、エラーまたは例外に関する情報を含む Throwable オブジェクトまたはそのサブクラスです。例外をスローする構文は次のとおりです。

throw new Exception("Error message");
ログイン後にコピー

例外のキャッチ例外は、
try-catch ステートメントを使用してキャッチできます。 try ブロックには例外をスローする可能性のあるコードが含まれており、catch ブロックはスローされた例外を処理するために使用されます。例外をキャッチするための構文は次のとおりです。

try {
  // 代码可能引发异常
} catch (Exception $e) {
  // 处理异常
}
ログイン後にコピー

実用的なケース2 つの数値の商を計算する関数
divide() を考えてみましょう。分母が 0 の場合、関数は InvalidArgumentException 例外をスローする必要があります。

function divide($numerator, $denominator) {
  if ($denominator == 0) {
    throw new InvalidArgumentException("Dividing by zero is not allowed.");
  }

  return $numerator / $denominator;
}
ログイン後にコピー

次のコード ブロックでは、

divide() 関数を呼び出し、catch ブロックで例外を処理します。コードは出力します:

try {
  $result = divide(10, 2);
  echo "Result: $result";
} catch (InvalidArgumentException $e) {
  echo "Error: " . $e->getMessage();
}
ログイン後にコピー

しかし、

$denominator

が 0 に設定されている場合、コードは

InvalidArgumentException 例外をスローし、次を出力します:

Result: 5
ログイン後にコピー
注意事項

真の例外またはエラー条件のみがスローされる必要があります。

    スローされた例外は関数のドキュメントに記録する必要があります。
  • 複数の
  • catch
  • ブロックを使用して、さまざまな種類の例外を処理できます。
  • finally
  • ブロックを使用すると、例外がスローされるかどうかに関係なくコードを実行できます。

以上がPHP 関数は例外処理を使用できますか?例外をスローしてキャッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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