0

特定の値を計算する社内 Web サイトを開発しています。PHPエラーではなく、単純なメッセージで計算から発生したエラーをユーザーに表示する必要があります。私もPHPで例外をスローすることを勉強しています.この場合、これは例外を再スローする良い方法ですか?

4

1 に答える 1

1

はい、それは可能であり、良い方法です。

<?php
 class customException extends Exception
  {
  public function errorMessage()
    {
    //error message
    $errorMsg = $this->getMessage().' is not a valid E-Mail address.';
    return $errorMsg;
    }
  }

$email = "someone@example.com";

try
  {
  try
    {
    //check for "example" in mail address
    if(strpos($email, "example") !== FALSE)
      {
      //throw exception if email is not valid
      throw new Exception($email);
      }
    }
  catch(Exception $e)
    {
    //re-throw exception
    throw new customException($email);
    }
  }

catch (customException $e)
  {
  //display custom message
  echo $e->errorMessage();
  }
     ?>

例の説明: 上記のコードは、電子メール アドレスに文字列 "example" が含まれているかどうかをテストします。含まれている場合は、例外が再スローされます。

  1. customException() クラスは、古い例外クラスの拡張として作成されます。このようにして、古い例外クラスからすべてのメソッドとプロパティを継承します
  2. errorMessage() 関数が作成されます。電子メール アドレスが無効な場合、この関数はエラー メッセージを返します。
  3. $email 変数は、有効な電子メール アドレスである文字列に設定されていますが、文字列 "example" が含まれています
  4. 「try」ブロックには、例外を再スローできるようにする別の「try」ブロックが含まれています
  5. 電子メールに文字列「example」が含まれているため、例外がトリガーされます
  6. 「catch」ブロックは例外をキャッチし、「customException」を再スローします
  7. 「customException」がキャッチされ、エラー メッセージが表示される

例外が現在の「try」ブロックでキャッチされない場合、「より高いレベル」で catch ブロックを検索します。

于 2013-09-19T21:05:39.677 に答える