Exception Handling مجموعه روش‌هایی برای تشخیص و مدیریت وضعیت‌های غیرعادی هنگام اجرای برنامه است. در زبان‌های مختلف، ساختارهایی مانند try، catch و finally برای این کار وجود دارند.

از تعریف تا کاربرد

اگر ارتباط با سرویس پرداخت قطع شود، برنامه می‌تواند خطا را ثبت کند و پاسخ مناسبی به کاربر برگرداند، بدون اینکه جزئیات محرمانه سرور نمایش داده شود.

نمونه کد

try {
    $gateway->pay($amount);
} catch (PaymentException $e) {
    report($e);
    throw $e;
}

نباید همه استثناها را بی‌صدا نادیده گرفت. نوع خطا، قابلیت Retry و اثر عملیات نیمه‌کاره باید روشن باشد.

مدیریت خطا نباید آن را پنهان کند

Catch کردن همه خطاها و بازگرداندن مقدار خالی ممکن است خرابی واقعی را پنهان کند. خطاهایی مانند اعتبارسنجی ورودی و قطع سرویس بیرونی معمولاً سیاست متفاوتی دارند. لاگ مناسب و انتشار خطای غیرقابل بازیابی به لایه بالاتر ضروری است.