3-7- مدیریت استثناء در C++

مدیریت استثنا[32] در C++ روشی جدید برای مدیریت شرایطی است که خروجی غیر منتظره­ای در پاسخ به ورودی کاربر وجود دارد. استثناء می‌تواند در طول زمان اجرا رخ دهد. فهرست 2-6 نمونه­ای از قابلیت مدیریت استثناء C++ است.

فهرست 2-6. مثال از مدیریت استثناء C++

#include <iostream>

using namespace std;

int main()

{

try

{

int no_1 = 1;

int no_2 = 0;

if(no_2 == 0)

{

throw no_1;

}

}

catch(int e)

{

cout<<“Exception found:”<<e<<endl;

}

}

برای مدیریت یک استثنا، عمدتا از سه کلمه کلیدی استفاده می‌کنیم.

  • try : در داخل بلوک try، کدی که استثنائی برمی‌انگیزد را می‌نویسیم.
  • catch: اگر بلوک try استثنائی قائل شود، در بلوک catch آن استثناء را گرفته و تصمیم می‌گیریم چه کاری با این استثناء انجام دهیم.
  • throw : هنگامیکه مشکل شروع به بروز می‌کند، استثناء را از بلوک try بیرون می­اندازیم. اگر اعلان trow صورت پذیرد، استثناء بروز یافته توسط بلوک catch گرفته می‌شود.

فهرست 2-7 ساختار کلی مدیریت استثناء را نشان می‌دهد.

فهرست 2-7. ساختار کلی برای مدیریت استثنا

try

{

//کد

}

catch (نام استثناء)

{

//بلوک مدیریت استثناء

}

کد فهرست 2-6 بررسی می‌کند که آیا num_2 برابر صفر است یا خیر. اگر num_2=0 باشد، با استفاده از کلمه کلیدی throw برای num_1 استثناء قائل می‌شود. سپس بلوک catch مقدار num_1 را برای بازبینی دریافت می‌کند.

شکل 2-26 خروجی لیست 2-6 را نشان می‌دهد.

شکل ‏2‑26: خروجی کد استثنائات

در داخل بلوک catch، مقدار استثناء (یعنی مقدار num_1 که برابر 1 است) را چاپ می‌کنیم.

مدیریت استثناء عمدتا به منظور سهولت خطایابی برنامه استفاده می‌شود. کسب اطلاعات بیشتر در صورت تمایل به وب[33] مراجعه کنید.

[32] Exception Handling

[33] www.geeksforgeeks.org/exception-handling-c/