سافت گذر دانشنامه نرم افزار - دانلود رایگان نرم افزار

اطلاعیه های مهم سایت اطلاعیه های مهم سایت
💐 میلاد زینت پدر حضرت زینب سلام الله علیها مبارک باد 💐
 
 
  1. جهت رفع مشکل باز شدن سایت به دلیل بلاک توسط  نود 32 این ویدیو یا این ویدیو(ورژن 9 به بالا) یا راهنمای تصویری را مشاهده کنید
  2. به مناسبت عید غدیر، در سایت https://esetupdate.ir/ تخفیف ویژه‌ای برای محصولات در نظر گرفته شده است؛ فرصت را از دست ندهید. 🌸
  3. اکانت های بروزرسانی نود32 با قیمت های مناسب به صورت یک ، سه ، شش و دوازده ماهه از اینجا قابل خرید می باشد.

نرم افزار های پرکاربرد

ثبت نام | ورود

اخبار فناوری

مدیریت استثناها در برنامه‌نویسی

استثناء‌ها (Exceptions) هنگامی رخ‌ می‌دهند که یکی از اعضای برنامه، قادر به اجرای وظیفه‌ای که برایش برنامه‌ریزی شده نباشد. این وضعیت به خطای استثناء معروف است. در این مقاله به صورت ابتدایی با استثناء‌ها و نحوه مدیریت آن‌ها در برنامه آشنا خواهیم شد.

 آشنایی با استثناء‌ها به ما اطمینان می‌دهد که خطاهای مرتبط را در هنگام وقوع شناسایی و مدیریت کنیم.

توضیح:
۱- کدهای درج شده در این مقاله به زبان #C هستند.
۲- این مقاله نیازمند آشنایی با مباحث برنامه‌نویسی است.
۳- با وجود اینکه کدها برای یک ویندوز‌اپلکیشین فرضی نگارش شده‌اند اما می‌توان همین کدها را برای وب‌اپلیکیشن‌ها نیز به کار گرفت.
۴- استثناء و مدیریت آن، مبحثی مفصل و بسیار کاربردی بوده و درک آن نیازمند چندین مقاله اختصاصی است. با این حال پس مطالعه این مقاله کوتاه می‌توان به صورت ابتدایی به مدیریت استثناءها پرداخت.

در یک سناریوی فرضی، فرمی ساده حاوی یک لیبل (Label) برای نمایش پیام خطا، یک فیلد متنی (TextBox) و یک کلید (Botton) را در نظر بگیرید. این فرم قرار است سن کاربر گرفته و بررسی نماید. اگر سن کاربر کمتر از ۲۰ باشد به او اجازه ثبت‌نام داده می‌شود در غیر این صورت این امکان وجود نخواهد داشت.

از کاربر درخواست می‌شود سن خود را در فیلد وارد نموده و در ادامه روی کلید، کلیک کند. در رخداد کلیک مربوط به کلید، مقدار وارد شده در تکست‌باکس را در یک متغیر ریخته و با عدد ۲۰ مقایسه می‌کنیم.

از آنجا که مقدار ورودی در تکست‌باکس از نوع رشته (String) است. متغییری از نوع رشته تعریف کرده و مقدار ورودی را در آن می‌ریزم. سپس با تبدیل آن به متغیری از نوع عدد صحیح (int)، آن را با عدد ۲۰ مقایسه می‌کنیم.

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

رفتار پیش‌فرض در این حالت، بسته‌شدن (Terminate) نرم‌افزار است. در این مرحله پای استثناء‌ به مسأله باز می‌شود. یعنی زمانی که در جریان اجرای یک برنامه، خطا یا اتفاقات غیرمنتظره‌ای مثل تبدیل یک مقدار غیرمجاز به عدد رخ دهد.

استثناء یک مکانیزم استاندارد برای گزارش وقوع خطاهای زمان اجرا (JIT) در برنامه است. بر همین اساس استفاده از استثناها به ما امکان می‌دهد که خطاهای رخ داده توسط اعضایی مانند متدهای سازنده را که نوع خاصی را بر‌نمی‌گردانند نیز مدیریت کنیم.

برای مدیریت استثناء‌ها از بلاک‌کدهای try-catch استفاده می‌شود.

بدین صورت که کدهایی که ممکن است حاوی خطاهای پیش‌بینی نشده باشد را در بلاک try قرار داده و رفتار اپلکیشین در صورت وقوع خطا را در بلاک catch قرار می‌دهیم.

برای مثال اگر قرار باشد با استفاده از بلاک‌کدهای try-catch مانع از وقوع خطای ذکر شده در سناریوی بالا شویم به صورت زیر عمل می‌کنیم:

//.کدها در رخداد کلیک، کلید قرار می‌گیرند
bool DataControl = false;
string UserInput = string.empty;
int UserAge = 0;

UserInput = txtUserInput.text;

try {
//.کدهایی که مستعد وقوع خطاهای استثناء هستند در این بلاک قرار می‌گیرند

UserAge = int.parse(UserInput);
DataControl = true;
}
catch {
//.رفتار اپلیکیشن هنگام وقوع خطا در این بلاک قرار می‌گیرد

lblError.text = “.ورودی نامعتبر است. ورودی باید عدد باشد”;
DataControl = false;
}
finally {
if (DataControl) {
if (UserAge < 20) {
// .اگر سن کاربر کمتر از ۲۰ باشد این قطعه اجرا می‌شود
}

else
{
// .اگر سن کاربر بیشتر از از ۲۰ باشد این قطعه اجرا می‌شود
}
}
}

در این قطعه کد، پس از کلیک بر روی کلید، مقدار تکست‌باکس (txtUserInput) در متغیری با نام UserInput ریخته می‌شود. سپس مقدار متغیر UserInput به کمک تابع parse به عدد صحیح تبدیل شده و در متغییری با نام UserAge قرار می‌گیرد.

اگر ورودی معتبر باشد، متغیر منطقی DataControl برابر true شده و کدهای بلاک finaly اجرا می‌شوند. اما اگر ورودی نامعتبر باشد، در هنگام تبدیل ورودی به عدد صحیح، خطایی رخ داده و با توجه به پیش‌بینی، نرم‌افزار کد‌های بلاک catch را اجرا می‌کند. یعنی یک پیام خطا به کاربر نمایش داده و مقدار DataControl را برابر با false کرده و در ادامه بازهم کدهای بلاک finally اجرا می‌شوند.

توجه داشته باشید که کدهای بلاک finally در هر حالتی اجرا خواهند شد. در بلاک finally، با توجه به مقدار DataControl و مقدار UserAge کدها اجرا خواهند شد.

به کمک همین قطعه کد، خطاهای احتمالی ناشی از ورود داده غیرمعتبر به صورت ابتدایی مدیریت شده و پیام خطای مناسب نیز به کاربر نمایش داده می‌شود.

مدیریت استثناء

هنگام استفاده از این بلاک‌کدهای مدیریت استثناء بهتر است چند نکته را مد‌نظر قرار دهید:

۱-  جزئیات کد و متن خطا را به صورت خروجی برنگردانید.
۲- اگر بخشی از برنامه قادر نیست وظیفه خود را انجام دهد از استثناء فقط برای گزارش وقوع خطا استفاده کنید.
۳- اگر اجرای نرم‌افزار با ورودی غیرمعتبر سطح امنیتی اپلیکیشن را کاهش می‌دهد بهتر است به جای فراخوانی استثناء اجرای نرم‌افزار را متوقف کنید.
۴- پیام خطا را صریح و واضح درج نمایید تا برای کاربر مشخص شود علت وقوع خطا چه چیزی بوده است.
۵- ترجیحاً از علامت سؤال (؟) یا علامت تعجب (!) در نمایش پیام استفاده نکنید.

نظرتان را ثبت کنید کد خبر: 33184 گروه خبری: اخبار فناوری منبع خبر: زومیت تاریخ خبر: 1395/05/16 تعداد مشاهده: 2492
اخبار مرتبط با این خبر
نظر های کاربران
سرور آپدیت نود 32
پیشنهاد سافت گذر
Bad Piggies Guide 1.0 for Android +2.1

Bad Piggies Guide 1.0 for Android +2.1

راهنمای بازی خوک های بد

AI Offline Music Generator 2.1.4

AI Offline Music Generator 2.1.4

ساخت موسیقی با هوش مصنوعی

امام سجاد علیه السلام جمال نیایشگران

امام سجاد علیه السلام جمال نیایشگران

جمال نیایشگران

سخنرانی حجت الاسلام ناصر رفیعی با موضوع عوامل رشد و ترقی در آیات و روایات

سخنرانی حجت الاسلام ناصر رفیعی با موضوع عوامل رشد و ترقی در آیات و روایات

سخنرانی عوامل رشد و ترقی در آیات و روایات با ناصر رفیعی

Adobe Flash Professional CS6 12.0.2.529

Adobe Flash Professional CS6 12.0.2.529

نسخه CS6 و نهایی از نرم افزار قدرتمند فلش در جهت ساخت کلیپ های انیمیشنی فلش

سخنرانی رائفی پور با موضوع تحولات بعد از رحلت پیامبر تا شهادت امام حسین (ع)

سخنرانی رائفی پور با موضوع تحولات بعد از رحلت پیامبر تا شهادت امام حسین (ع)

سخنرانی دکتر رایفی پور با موضوع تحولات بعد از رحلت رسول الله

سخنرانی حجت الاسلام رضا استادی با موضوع اهداف ابا عبدالله الحسین (علیه السلام ) و ثمرات آن - 2 جلسه

سخنرانی حجت الاسلام رضا استادی با موضوع اهداف ابا عبدالله الحسین (علیه السلام ) و ثمرات آن - 2 جلسه

سخنرانی اهداف ابا عبدالله الحسین (علیه السلام ) و ثمرات آن با رضا استادی

همراه بانک سرمایه ( تک بانک ) نسخه 3.1.73 برای اندروید

همراه بانک سرمایه ( تک بانک ) نسخه 3.1.73 برای اندروید

موبایل بانک سرمایه

پردازش تصویر جهت رفع تاری

پردازش تصویر جهت رفع تاری

رفع تاری تصویر

Industry Giant 2

Industry Giant 2

غول صنعت 2 | شبیه‌ساز ساخت و ساز و تجارت در ابعاد عظیم

LEC Power Translator World Premium 15 v3.1r9

LEC Power Translator World Premium 15 v3.1r9

قویترین مترجم 13 زبان زنده دنیا به یکدیگر

سخنرانی حجت الاسلام انصاریان  با موضوع شرح زیارت وارث - 4 جلسه

سخنرانی حجت الاسلام انصاریان با موضوع شرح زیارت وارث - 4 جلسه

حاج آقا انصاریان با موضوع شرح زیارت وارث

آموزش برنامه نویسی به زبان اسمبلی

آموزش برنامه نویسی به زبان اسمبلی

آشنایی با برنامه نویسی به زبان Assembly برای کامپیوترهای شخصی

قرآن به روایت تصویر

قرآن به روایت تصویر

آشنایی تصویری با قرآن

DevComponents DotNetBar 14.1.0.37

DevComponents DotNetBar 14.1.0.37

دات نت بار برنامه نویسی Net.

Norton Bootable Recovery Tool 2022

Norton Bootable Recovery Tool 2022

ابزار پاک سازی ویروس شرکت سیمانتک

مشروعیت الهی و مردمی

مشروعیت الهی و مردمی

اراده تشریعى خداوند

Fallen Mage

Fallen Mage

اکشن نقش آفرینی

Ventoy 1.1.18 Final + LiveCD

Ventoy 1.1.18 Final + LiveCD

ونتوی

Aperty 1.2.1.978

Aperty 1.2.1.978

ویرایش عکس

Airport Mania First Flight

Airport Mania First Flight

مدیریت فرودگاه مانیا

Adobe Photoshop Elements 2027 27.0 / 2026 26.3 / 2025 25.2 / 2024 24.0 / 2023 / 2022.4  / macOS 2022

Adobe Photoshop Elements 2027 27.0 / 2026 26.3 / 2025 25.2 / 2024 24.0 / 2023 / 2022.4 / macOS 2022

ادوب فوتوشاپ المنت

اهمیت حجاب در جامعه

اهمیت حجاب در جامعه

پرسش هایی درباره حجاب

سخنرانی حجت الاسلام انصاریان  با موضوع توبه ی واقعی - 2 جلسه

سخنرانی حجت الاسلام انصاریان با موضوع توبه ی واقعی - 2 جلسه

حاج آقا انصاریان با موضوع توبه ی واقعی

آموزش نرم افزار Revit Autodesk

آموزش نرم افزار Revit Autodesk

آموزش ریویت اتودسک

Ski-World Simulator

Ski-World Simulator

شبیه‌ساز دنیای اسکی

The Yellow Bird Song - ZARBANG ENSEMBLE

The Yellow Bird Song - ZARBANG ENSEMBLE

آهنگ زرد ملیجه

CCProxy 8.0 Build 20250207

CCProxy 8.0 Build 20250207

سی سی پروکسی

Camper Jumper Simulator

Camper Jumper Simulator

ماشین کاروان

Another Sight

Another Sight

استیم پانک

آهنگ یکشنبه غم‌انگیز

آهنگ یکشنبه غم‌انگیز

یکشنبه غم انگیز

آچار فرانسه 2 ناشناخته های Windows 7

آچار فرانسه 2 ناشناخته های Windows 7

ناشناخته های ویندوز سون

Jet Gunner

Jet Gunner

تفنگدار تندرو

Sound Recorder 1.0.9 for Android +2.3

Sound Recorder 1.0.9 for Android +2.3

ضبط صدا به صورت کاملا ساده

FlashGet 3.7.0.1220 Final

FlashGet 3.7.0.1220 Final

نرم‌افزار قدرتمند مدیریت دانلود خصوصا برای دانلود ازFTP

The Martian

The Martian

مریخی

آموزش و فواید خودشناسی

آموزش و فواید خودشناسی

چطور خود را بشناسیم و اصلاً شناختن خودمان چه مزایایی دارد؟

InfiniteSkills - Learning AutoCAD Civil 3D 2015

InfiniteSkills - Learning AutoCAD Civil 3D 2015

فیلم آموزش اُتوکد سیویل تری‌دی 2015

آموزش مقدماتی Flash MX

آموزش مقدماتی Flash MX

آموزش فلش ام ایکس

مداحی شهادت امام هادی (ع)

مداحی شهادت امام هادی (ع)

ویژه شهادت امام علی النقی الهادی

خبرنامه

با عضویت در خبرنامه، زودتر از همه باخبر باش!