ایجاد کلاس استثنایِ خودمان
به سادگی می توانیم یک کلاس سفارشی، همراه با توابعی که بتوانند هنگام رخداد یک استثنا در 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 = "
try
{
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
{
throw new customException($email);
}
}
catch (customException $e)
{
echo $e->errorMessage();
}
?>
توضیح مثال:
- کلاس customException از کلاس Exception ارثبری دارد، بنابراین، این کلاس همه ی متدها و خصوصیات را از کلاس قبلی به ارث می برد (getMessage,getFile,getLine)
- تابع ()errorMessage یک پیغام خطا برمی گرداند (درصورتی که آدرس ایمیل نامعتبر باشد).
- متغییر email$ با یک مقدار نامعتبر برای ایمیل تنظیم شده است.
- بلاک try اجرا می شود و چون که آدرس ایمیل نامعتبر است، یک استثنا راه اندازی می شود
- بلاک catch استثنا را می گیرد و یک پیغام خطا نمایش می دهد




