بازگردانی هندلر خطا (restore_error_handler)
گاهی هندلر خطا را عوض می کنی و فراموش می شود. با «بازگردانی هندلر خطا» می توانی هندلر قبلی را برگردانی. تابع restore_error_handler() این کار را انجام می دهد.
تعریف ساده و کاربرد
restore_error_handler() هندلر خطا را به حالت قبلی برمی گرداند. «هندلر خطا (Error Handler)» یعنی تابعی که هنگام خطا اجرا می شود. این تابع پس از set_error_handler() به کار می آید.
نحو (Syntax)
restore_error_handler();
مثال عملی: عوض کردن و بازگردانی هندلر
در این مثال، یک هندلر سفارشی می گذاریم. سپس آن را برمی گردانیم و دوباره خطا ایجاد می کنیم.
<?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");
}
// بازگردانی هندلر قبلی
restore_error_handler();
// ایجاد خطا دوباره؛ حالا با هندلر قبلی
if ($test > 1) {
trigger_error("A custom error has been triggered");
}
?>
نکته: هندلر قبلی می تواند هندلر داخلی PHP یا یک تابع کاربری باشد.
رفتار و جزئیات فنی
- مقدار بازگشتی: همیشه
TRUE. - نسخه PHP: 4.0.1+.
- کاربرد: پس از پایان بخش حساس، محیط خطا را به حالت امن قبلی برگردان.
گام های عملی استفاده
- با
set_error_handler()هندلر سفارشی بگذار. - کد حساس را اجرا و خطاها را مدیریت کن.
- در پایان،
restore_error_handler()را صدا بزن. - رفتار پیش فرض یا قبلی دوباره فعال می شود.
پیوندهای مفید
برای ایجاد خطا آزمایشی، سر بزن به trigger_error. همچنین صفحه بازگردانی هندلر خطا را نشانه گذاری کن. مرجع بیرونی: W3Schools و اجرای آنلاین مثال: Try it Yourself.
جمع بندی سریع
- هندلر فعلی را به قبلی برگردان.
- بعد از کار حساس، حتماً برگردان.
- همیشه مقدار
TRUEمی دهد. - با
trigger_error()تست کن.