آموزش ایجاد کنترل کننده خطا در PHP
این تابع باید حداقل دو پارامتر داشته باشد. پارامترهای اجباری :
- error level(اهمیت خطا)
- error message( پیغام خطا)
اما در کل میتواند 5 پارامتر را در برگیرد. نوشتن سه پارامتر دیگر به صورت اختیاری است. این پارمترها شامل :
- line-number (شماره خطی که در آن خطا رخ داده است)
- the error context (محتوانی خطا)
- file ( نام فایل)
نحوه نوشتن این تابع بری ایجاد کنترل کننده خطا در PHP به صورت زیر است :
error_function(error_level،error_message،error_file،error_line،error_context)
توضیحات | پارامترها |
این پارامتر اهمیت خطا را نشان میدهد.نوشتن اجباری است و با عدد نمایش میدهند. توضیح آن در جدول زیر آمده است. | error_level |
پیغامی درباره خطا است. نوشتن آن اجباری است | error_message |
این پیغام نام متغیر را مشخص میکند و نوشتن آن اختیاری است. | error_file |
این پیغام شماره خطی را که خطا در آن رخ داده است نشان میدهد. نوشتن این پارامتر اختیاری است | error_line |
این خطا شامل تمام متغیرها و ارزش آن ها است زمانی که خطایی رخ میددهد. نوشتن این پارامتر اختیاری است. | error_context |
گزارش اهمیت خطا درPHP
جدول زیر انواع اهمیت خطا در PHP وتوضیح هر یک را نشان میدهد.
توضیحات | پارامتر | ارزش |
اهمیت خطا کم بوده و مانع اجرای کد نویسی ها نمیشود. | E_WARNING | 2 |
برنامه ممکن اسن دچار مشکل شده باشد و خطا نمایش دهد اما در روند ادامه برنامه مشکلی ایجاد نمیکند. | E_NOTICE | 8 |
یک پیغام مهم است و در روند اجرای اسکریپت ها اختلالی ایجاد میکند. | E_USER_ERROR | 256 |
یک پیغام ساده است و در روند اجرای اسکریپت ها اختلالی ایجاد نمیکند. مانند E_WARNING خطا هم توسط طراح وب برنامه پیش بینی میشود | E_USER_WARNING | 512 |
پیغام خطا یک پیغام معمولی بوده و طراح وب آن را پیش بینی میکند | E_USER_NOTICE | 1024 |
یک خطای بسیار مهم و اسکریپت ها را از کار می اندازد | E_RECOVERABLE_ERROR | 4096 |
همه نوع خطا را شامل میشود. | E_ALL | 8191 |
حال بیاید برای کنترل خطا ها یک تابع را به عنوان مثال تعریف کنیم :
functioncustomError($errno،$errstr)
{
echo"<b>Error : </b> [$errno] $errstr<br>";
echo"Ending Script";
die();
}
کد نوشته شده فوق به صورت ساده ای کنترل کننده خطا در PHP است. در این تابع متغیر اول errno$ اهمیت خطا و errstr$ پیغام خطا را ذخیره میکند و سپس به خروجی میفرستد.