تنظیم هندلر خطا (set_error_handler)
می خواهی خطاها را قشنگ مدیریت کنی؟ با «هندلر خطا (Error Handler)» می توانی یک تابع شخصی بسازی. تابع set_error_handler() همین کار را انجام می دهد و کنترل را به تو می دهد.
تعریف و نکته مهم
تابع set_error_handler() یک «هندلر خطا» تعیین می کند. توجه کن: وقتی این تابع فعال است، «هندلر پیش فرض PHP» کنار می رود. پس اگر لازم شد، اسکریپت را با die() پایان بده.
نحو (Syntax)
set_error_handler(errorhandler, E_ALL | E_STRICT);
مثال: ساخت و تست هندلر
یک هندلر می سازیم، بعد با trigger_error() خطا ایجاد می کنیم تا پیام سفارشی ببینیم.
<?php
// تابع هندلر خطای سفارشی
function myErrorHandler($errno, $errstr, $errfile, $errline) {
echo "<b>Custom error:</b> [" . $errno . "] " . $errstr . "<br>";
echo " Error on line " . $errline . " in " . $errfile . "<br>";
}
// تنظیم هندلر سفارشی
set_error_handler("myErrorHandler");
$test = 2;
// ایجاد خطا برای تست
if ($test > 1) {
trigger_error("A custom error has been triggered");
}
?>
گام های عملی سریع
- تابع هندلر را با امضای درست بساز.
- با
set_error_handler()آن را ثبت کن. - در صورت نیاز، با
trigger_error()تست بگیر.
جزئیات فنی مفید
- خروجی تابع: نام هندلر قبلی به صورت رشته.
- نسخه PHP: 4.0.1+.
- اگر خطاها قبل از اجرای اسکریپت رخ دهند، هندلر سفارشی ثبت نشده است.
- می توان سطح گزارش خطا را با ثابت ها مشخص کرد؛ پیش فرض
E_ALLاست.
پیوندها و نکته تکمیلی
نکته: برای بازگشت به حالت قبلی، از restore_error_handler استفاده کن. صفحه هندلر خطا را هم برای مرور نگه دار. مرجع بیرونی: W3Schools: set_error_handler و W3Schools: Error Reference.
جمع بندی سریع
- هندلر خطا یعنی مدیریت پیام های خطا با تابع خودت.
- هندلر پیش فرض کنار می رود؛ مراقب پایان اسکریپت باش.
- نام هندلر قبلی برگردانده می شود.
- برای بازگشت، از
restore_error_handler()کمک بگیر.