بازگردانی هندلر استثنا (restore_exception_handler)
گاهی هندلر استثنا بهم می ریزد. با «بازگردانی هندلر استثنا» همه چیز برمی گردد. تابع restore_exception_handler() هندلر قبلی را فعال می کند و نظم می دهد.
تعریف ساده و کاربرد هندلر استثنا
«استثنا (Exception)» یعنی خطایی که پرتاب می شود. «هندلر استثنا (Exception Handler)» تابعی است که هنگام استثنا اجرا می شود. پس از تغییر با set_exception_handler می توانی با این تابع، هندلر قبلی را برگردانی.
نحو (Syntax)
restore_exception_handler();
مثال عملی: بازگردانی هندلر استثنا
دو هندلر می گذاریم. سپس یکی را برمی گردانیم و یک استثنا پرتاب می کنیم.
<?php
// دو هندلر استثنای سفارشی
function myException1($exception) {
echo "[" . __FUNCTION__ . "]" . $exception->getMessage();
}
function myException2($exception) {
echo "[" . __FUNCTION__ . "]" . $exception->getMessage();
}
// تنظیم هندلر اول
set_exception_handler("myException1");
// جایگزینی با هندلر دوم
set_exception_handler("myException2");
// بازگردانی به هندلر قبلی (myException1)
restore_exception_handler();
// پرتاب استثنا برای تست
throw new Exception("This triggers the first exception handler...");
?>
نکته: هندلر قبلی می تواند داخلی PHP باشد یا یک تابع کاربری.
گام های سریع استفاده
- با
set_exception_handler()هندلر سفارشی بگذار. - کد حساس را اجرا و وضعیت را بررسی کن.
- با
restore_exception_handler()به حالت قبلی برگرد.
جزئیات فنی مفید
- مقدار بازگشتی همیشه
TRUEاست. - نسخه PHP: 5.0+.
- به نظم اجرای خطاها کمک می کند.
پیوندهای مفید
برای مرور مفهوم هندلر استثنا همین صفحه را نشانه گذاری کن. همچنین صفحه set_exception_handler را ببین. مرجع بیرونی: W3Schools: restore_exception_handler و W3Schools: Error Reference.
جمع بندی سریع
- بازگردانی هندلر استثنا نظم را برمی گرداند.
- بعد از کار حساس، حتماً برگردان.
- همیشه
TRUEبرمی گرداند. - با پرتاب استثنا، عملکرد را تست کن.