ایجاد کلاس استثنایِ خودمان

به سادگی می توانیم یک کلاس سفارشی، همراه با توابعی که بتوانند هنگام رخداد یک استثنا در php فراخوانی شوند، ایجاد کرد، لطفاً به مثال زیر توجه فرمایید:

نکته: کلاس جدیدمان باید از کلاس Exception ارثبری داشته باشد.

مثال:

<?php
class customException extends Exception
  {
  public function errorMessage()
    {
    $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
    .': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';
    return $errorMsg;
    }
  }

$email = "این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید";

try
  {  
  if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
    {
    throw new customException($email);
    }
  }

catch (customException $e)
  {
  echo $e->errorMessage();
  }
?>

 توضیح مثال:

  1. کلاس customException از کلاس Exception ارثبری دارد، بنابراین، این کلاس همه ی متدها و خصوصیات را از کلاس قبلی به ارث می برد (getMessage,getFile,getLine)
  2. تابع ()errorMessage یک پیغام خطا برمی گرداند (درصورتی که آدرس ایمیل نامعتبر باشد).
  3. متغییر email$ با یک مقدار نامعتبر برای ایمیل تنظیم شده است.
  4. بلاک try اجرا می شود و چون که آدرس ایمیل نامعتبر است، یک استثنا راه اندازی می شود
  5. بلاک catch استثنا را می گیرد و یک پیغام خطا نمایش می دهد

آموزش های مرتبط

آموزش PHP-بررسی استثناها