PHP/Development/Exceptions

Материал из Web эксперт
Версия от 10:03, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Catch database connection exception

   <source lang="html4strict">

<?php

  try {
     $conn = mysql_connect("localhost","username","password");
        if (! $conn) {
           throw new Exception("Could not connect!");
       }
  }
  catch (Exception $e) {
     echo "Error (File: ".getFile().", line ".$e->getLine()."): ".$e->getMessage();
  }

?>

      </source>
   
  


Define your own exception class

   <source lang="html4strict">

<?php

  class InvalidEmailException extends Exception {
  
     function __construct($message, $email) {
        $this->message = $message;
        $this->notifyAdmin($email);
     }
     private function notifyAdmin($email) {
        mail("admin@yourdomain.ru","INVALID EMAIL",$email,"From:web@example.ru");
     }
  }
  class subscribe {
     function validateEmail($email) {
        try {
           if ($email == "") {
              throw new Exception("You must enter an e-mail address!");
           } else {
              list($user,$domain) = explode("@", $email);
                 if (! checkdnsrr($domain, "MX")) {
                    throw new InvalidEmailException("Invalid e-mail address!", $email);
                 } else {
                    return 1;
                 }
           }
        } catch (Exception $e) {
           echo $e->getMessage();
        } catch (InvalidEmailException $e) {
           echo $e->getMessage();
        }
     }
     function subscribeUser() {
        echo $this->email." added to the database!";
     }
  }
  $_POST["email"] = "someuser@example.ru";
  if (isset($_POST["email"])) {
     $subscribe = new subscribe();
     if($subscribe->validateEmail($_POST["email"]))
        $subscribe->subscribeUser($_POST["email"]);
  }

?>


      </source>