آموزش PHP > مرجع توابع مدیریت خطا در PHP > تابع ( ) set_error_handler
تابع ( ) set_error_handler :
تابع ( ) set_error_handler ، برای تعیین یک تابع به عنوان تابع پیش فرض جهت مدیریت
خطاهای رخ داده در صفحه استفاده می شود .
تابعی که در درون این تایع تعیین می شود ، هر گاه خطایی در صفحه رخ داده ، فعال شده
و اسکریپت تعیین شده برای آن را اجرا می کند . به عبارت دیگر از این تابع می توانید
برای مدیریت خطاهای صفحه به روش دلخواه خود استفاده نمایید .
تابع ( ) set_error_handler ، در صورت موفقیت در اجرا ، تابع تعیین شده برای آن را
اجرا کرده و در غیر اینصورت مقدار Null را بر می گرداند .
شکل کلی استفاده از این تابع به صورت زیر است :
|
syntax
|
set_error_handler( error_function , error_types ) ;
|
|
توضیح
|
این پارامتر نام تابع پیش فرض ، جهت مدیریت خطاهای رخ داده را تعیین می کند .
تعیین این پارامتر اجباری است .
|
این پارامتر تعیین می کند که پیام خطا برای error رخ داده در چه موارد و level ای ،
نشان داده شود .
مقدار پیش فرض این پارامتر " E_ALL " بوده و پیام خطا برای تمامی error های رخ داده
، نشان داده می شود . اما شما می توانید حالت های دیگری که در جدول راهنمای شماره 1
آمده است را نیز انتخاب کنید .
تعیین این پارامتر اختیاری است .
|
ساختار تابع مدیریت کننده خطا چگونه است ؟
شکل کلی یک تابع طراحی شده برای مدیریت خطا در PHP می تواند به صورت زیر باشد :
|
syntax
|
error_function ( error_level , error_message , error_file , error_line , error_context
) ;
|
در جدول زیر به تشریح پارامترهای کد فوق و استفاده آنها پرداخته شده است :
|
توضیح
|
این پارامتر شدت اهمیت خطا را تعیین می کند . یک مقدار عددی است و شرح موارد آن در
جدول راهنمای شماره 1 آمده است .
استفاده از این پارامتر اجباری است .
|
این پارامتر پیام خطا را که حاوی اطلاعاتی راجع به آن است را تعیین می کند .
استفاده از این پارامتر اجباری است .
|
این پارامتر نام فایلی که خطا در آن رخ داده است ، را مشخص می کند .
استفاده از این پارامتر اختیاری است .
|
این پارامتر شماره خطی که خطا در آن رخ داده است را مشخص می کند .
استفاده از این پارامتر اختیاری است .
|
این پارامتر نیز تمامی متغیرها و مقدارهایشان که در کد برنامه ای که خطا در آن رخ داده
است را شامل می شود .
استفاده از این پارامتر اختیاری است .
|
جدول راهنمای شماره 1 : جدول زیر انواع مقادیر مختلف برای شدت
اهمیت خطای رخ داده و توضیحات آنها را نشان می دهد :
|
توضیح
|
|
خطا با شدت اهمیت کم بوده و مانع اجرای اسکریپت نخواهد شد .
|
|
پیام خطا یک اعلان مشکل . برنامه ممکن است ایرادی پیدا کرده باشد که از نظرش خطاست
، ولی مشکل خاصی ایجاد نمی کند .
|
|
این خطا یک خطا مهم بوده و توسط کاربر پیش بینی شده است . به احتمال زیاد اجرای روند
اسکریپت را متوقف می کند .
|
|
یک پیام اخطار معمولی که معمولا باعث توقف اجرای اسکریپت نشده و توسط طراح پیش بینی
شده است .
|
|
یک اعلان بروز خطا یا مشکل معمولی که توسط طراح پیش بینی شده است .
|
|
یک خطای مهم و از کار اندازنده ، که قابل پیش بینی و مدیریت می باشد . معمولا این خطا
توسط یک مدیریت کننده خطا طراحی شده توسط طراح برنامه ، شناسایی می شود .
|
|
همه نوع خطا و اخطار را شامل می شود .
|
نکات مهم درباره این تابع مدیریت کننده خطا :
- نکته 1 : در صورت تعیین این تابع به صورت کامل ، دیگر تابع مدیریت
کننده خطای استاندارد در PHP ، به هیچ وجه استفاده نخواهد شد .
همچنین در صورت نیاز ، تابع مدیریت کننده خطا ، حتما بایستی با دستور ( ) die ، تمام
شود .
- نکته 2 : اگر error قبل از اینکه
کد PHP به محل تعریف تابع پیش فرض تعیین شده برای مدیریت خطا برسد ، اتفاق بیفتد
، اسکرپیت نمی تواند از آن تابع استفاده کند . زیرا هنوز در کد برنامه ثبت و تعریف
نشده است .
مثال عملی :
مثال : در مثال زیر ، نحوه استفاده و تعریف یک تابع مدیریت کننده
خطا را آموزش داده ایم :
|
مثال
|
<?php
// تعریف تابع مدیریت کننده خطا
function customError($errno, $errstr, $errfile, $errline)
{
echo "<b>Custom error:</b>
[$errno] $errstr<br />";
echo " Error on line $errline in $errfile<br
/>";
echo "Ending Script";
die();
}
// تعیین تابع مدیریت کننده خطا
set_error_handler("customError");
$test=2;
// رخ دادن خطا
if ($test>1)
{
trigger_error("A custom error has been
triggered");
}
?>
|
|
خروجی
|
Custom error: [1024] A custom error has been triggered
Error on line 19 in C:\webfolder\test.php
Ending Script
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه :