1. ホーム
  2. php

PHP の Try Catch ブロックで例外をスローする

2023-08-05 11:52:52

質問

Drupal 6の.moduleファイルにPHP関数があります。 より集中的なタスク (データベースクエリなど) を実行する前に、初期の変数検証を実行しようとしています。C#では、Tryブロックの最初にIF文を実装し、検証が失敗した場合に新しい例外をスローしていました。 投げられた例外はCatchブロックでキャッチされます。 以下は、私のPHPコードです。

function _modulename_getData($field, $table) {
  try {
    if (empty($field)) {
      throw new Exception("The field is undefined."); 
    }
    // rest of code here...
  }
  catch (Exception $e) {
    throw $e->getMessage();
  }
}

しかし、コードを実行しようとすると、オブジェクトはCatchブロックの中でしか投げられないと言われます。

ありがとうございます。

どのように解決するのですか?

function _modulename_getData($field, $table) {
  try {
    if (empty($field)) {
      throw new Exception("The field is undefined."); 
    }
    // rest of code here...
  }
  catch (Exception $e) {
    /*
        Here you can either echo the exception message like: 
        echo $e->getMessage(); 

        Or you can throw the Exception Object $e like:
        throw $e;
    */
  }
}