Exception Handling مجموعه روشهایی برای تشخیص و مدیریت وضعیتهای غیرعادی هنگام اجرای برنامه است. در زبانهای مختلف، ساختارهایی مانند try، catch و finally برای این کار وجود دارند.
از تعریف تا کاربرد
اگر ارتباط با سرویس پرداخت قطع شود، برنامه میتواند خطا را ثبت کند و پاسخ مناسبی به کاربر برگرداند، بدون اینکه جزئیات محرمانه سرور نمایش داده شود.
نمونه کد
try {
$gateway->pay($amount);
} catch (PaymentException $e) {
report($e);
throw $e;
}
نباید همه استثناها را بیصدا نادیده گرفت. نوع خطا، قابلیت Retry و اثر عملیات نیمهکاره باید روشن باشد.
مدیریت خطا نباید آن را پنهان کند
Catch کردن همه خطاها و بازگرداندن مقدار خالی ممکن است خرابی واقعی را پنهان کند. خطاهایی مانند اعتبارسنجی ورودی و قطع سرویس بیرونی معمولاً سیاست متفاوتی دارند. لاگ مناسب و انتشار خطای غیرقابل بازیابی به لایه بالاتر ضروری است.