رفتن به محتوا
ماژول 6

مدیریت خطا و ایمنی

کد ‎C++‎ مقاوم بنویسید با مدیریت صحیح خطا — استثناها، تضمین‌های ایمنی RAII، انواع مجموع، و الگوهای برنامه‌نویسی دفاعی.

استثناها و راهبردهای خطا

  1. استثناها: throw، try، catch

    درک سازوکار استثنای ‎C++‎ — بازگشایی پشته (stack unwinding)، سلسله‌مراتب استثناهای استاندارد، استثناهای سفارشی، و زمان ترجیح استثناها بر کدهای خطا.

  2. تضمین‌های ایمنی استثنا

    سه سطح ایمنی استثنا را بیاموزید — پایه، قوی، و بدون پرتاب — و اینکه چگونه RAII و کپی‌وجابه‌جایی آن‌ها را فراهم می‌کنند.

  3. راهبردهای مدیریت خطا: انتخاب رویکرد مناسب

    مقایسه استثناها، کدهای خطا، و std::expected — یاد بگیرید هر رویکرد چه زمانی مناسب است و چگونه خطاها را در سازنده‌ها، مخرب‌ها و کد چندنخی مدیریت کنید.

ایمنی نوع و برنامه‌نویسی دفاعی

  1. std::optional، std::variant و std::expected

    از انواع مجموع ‎C++‎17/23 برای نمایش مقادیر قابل‌تهی، اتحادیه‌های ایمن از نظر نوع، و بازگشت مقدار‌یا‌خطا استفاده کنید — و دسته‌های کاملی از باگ‌ها را در زمان کامپایل حذف کنید.

  2. ایمنی نوع، اظهارات و قراردادها

    از سیستم نوع ‎C++‎ برای جلوگیری از باگ‌ها در زمان کامپایل بهره ببرید — enum‌های قوی، الگوی newtype، static_assert، اظهارات زمان اجرا، و ویژگی آینده قراردادها (contracts).

  3. درک و اجتناب از رفتار تعریف‌نشده

    بیاموزید رفتار تعریف‌نشده (UB) چیست، چرا وجود دارد، چگونه کامپایلرها از آن برای بهینه‌سازی بهره‌برداری می‌کنند، و چگونه آن را با ابزارهای بهداشتی (sanitizer) و هشدارهای کامپایلر تشخیص دهید.