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

اطلاعیه های مهم سایت اطلاعیه های مهم سایت
💐 میلاد زینت پدر حضرت زینب سلام الله علیها مبارک باد 💐
 
 
  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 تعداد مشاهده: 2486
اخبار مرتبط با این خبر
نظر های کاربران
سرور آپدیت نود 32
پیشنهاد سافت گذر
نصب گوگل آنالیتیکس

نصب گوگل آنالیتیکس

تجزیه و تحلیل و آنالیز وب سایت

African Cats

African Cats

مستند گربه سانان

FastDic 3.0.0 for Android

FastDic 3.0.0 for Android

دیکشنری انگلیسی و بالعکس

Microsoft Visual Studio Team Foundation Server 2012 Update 1 x86/x64

Microsoft Visual Studio Team Foundation Server 2012 Update 1 x86/x64

ویرایش خاص نرم افزار Visual Studio‌ برای انجام گروهی پروژه های برنامه نویسی

قصه های جذاب از امام هشتم

قصه های جذاب از امام هشتم

داستان هایی از امام رضا

Success Guide

Success Guide

راهنمای موفقیت

Exif Pilot 6.28.3

Exif Pilot 6.28.3

ویرایش عکس های اگزیف

All Video Downloader Pro 10.1

All Video Downloader Pro 10.1

دانلود ویدیو

Ready or Not - Los Sueños Stories Patch #2

Ready or Not - Los Sueños Stories Patch #2

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

تلاوت مجلسی استاد محمد جواد پناهی سوره مبارکه احزاب

تلاوت مجلسی استاد محمد جواد پناهی سوره مبارکه احزاب

تلاوت محمد جواد پناهی سوره احزاب

سخنرانی آیت الله مجتهدی درباره نماز شب

سخنرانی آیت الله مجتهدی درباره نماز شب

آیت الله مجتهدی نماز شب

HyperCam Business Edition 6.2.2404.10

HyperCam Business Edition 6.2.2404.10

هایپرکم

Antonio Vivaldi - The Four Season

Antonio Vivaldi - The Four Season

آلبوم موسیقی چهار فصل ویوالدی

دورهٔ آموزش ویدئویی لینوکس به زبان فارسی از مقدماتی تا پیشرفته

دورهٔ آموزش ویدئویی لینوکس به زبان فارسی از مقدماتی تا پیشرفته

آموزش لینوکس

YTD Video Downloader Ultimate 7.6.7.0 / YT Downloader 10.6.30 / YT Saver 11.1.2 / iDownerGo 11.1.2 / iTubeGo 10.7.1

YTD Video Downloader Ultimate 7.6.7.0 / YT Downloader 10.6.30 / YT Saver 11.1.2 / iDownerGo 11.1.2 / iTubeGo 10.7.1

یوتوب دانلودر

باد صبا 16.8 برای اندروید

باد صبا 16.8 برای اندروید

تقویم و پخش اذان

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

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

آموزش سوئیفت

Baldur's Gate - Enhanced Edition

Baldur's Gate - Enhanced Edition

دروازه ی بالدر - نسخه ی ارتقا یافته

IZArc 4.6

IZArc 4.6

فشرده سازی فایل ها

Adobe Design Standard 5.5 Middle Eastern

Adobe Design Standard 5.5 Middle Eastern

پکیج نسخه های خاور میانه (فارسی) محصولات Adobe CS5.5 با کرک کامل

دیوار Divar نسخه 11.14.20 برای اندروید

دیوار Divar نسخه 11.14.20 برای اندروید

دیوار

Pluralsight - Useful jQuery Plugins

Pluralsight - Useful jQuery Plugins

فیلم آموزش پلاگین‌های مفید و کارآمد جی‌کوئری

خود فلسفی

خود فلسفی

من باید بدانم که کیستم و چگونه باید زندگی کنم و چه رسالتی را باید در زندگی به انجام برسانم

بررسی و تحلیل مسائل روز دنیای بین المللی

بررسی و تحلیل مسائل روز دنیای بین المللی

مجله The Nation ژانویه 25 ؛ 2021

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

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

حاج آقا ماندگاری با موضوع دفاع مقدس

QuantumX AI 1.0.1

QuantumX AI 1.0.1

تبدیل عکس به آثار هنری با هوش مصنوعی

مولودی زیبای ولادت حضرت رقیه از حاج محمدرضا طاهری

مولودی زیبای ولادت حضرت رقیه از حاج محمدرضا طاهری

حاج محمدرضا طاهری مولودی داره می رسه انگار، باز صدای کوثر

Pinegrow Web Editor Pro 5.99 + Portable

Pinegrow Web Editor Pro 5.99 + Portable

پاین گرو

Farm Manager 2018 + Updates

Farm Manager 2018 + Updates

شبیه ساز کشاورزی

Attenborough's Life That Glows

Attenborough's Life That Glows

مستند دیوید اتنبرو با دوبله فارسی

سخنرانی حجت الاسلام دکتر رفیعی درباره قرآن

سخنرانی حجت الاسلام دکتر رفیعی درباره قرآن

درمان با قرآن از زبان حجت الاسلام رفیعی

Decay - The Mare

Decay - The Mare

تباهی - کابوس

دوره آموزش ویدئویی UNIX به زبان فارسی

دوره آموزش ویدئویی UNIX به زبان فارسی

آموش یونیکس

Disk Drill Enterprise 6.3.1398.0

Disk Drill Enterprise 6.3.1398.0

ریکاوری فایل های پاک شده

Section 8

Section 8

گروه 8

Lynda - Simple Android Development Tools

Lynda - Simple Android Development Tools

فیلم آموزش ساخت اپلیکیشن‌های اندروید با ابزارهای ساده

مولودی زیبای حاج محمود کریمی به مناسبت آغاز امامت حضرت ولی عصر(عج)

مولودی زیبای حاج محمود کریمی به مناسبت آغاز امامت حضرت ولی عصر(عج)

9 ربیع الاول امامت امام زمان

Fring 4.5.2.2 for Android

Fring 4.5.2.2 for Android

پیام اینترنتی رایگان

مجله تخصصی برای علاقه مندان به بازی های کامپیوتری

مجله تخصصی برای علاقه مندان به بازی های کامپیوتری

مجله PC Gamer شماره 4 سال 2021

Intel Graphics Driver 32.0.101.9033 + Old Version

Intel Graphics Driver 32.0.101.9033 + Old Version

درایور کارت گرافیک اینتل

خبرنامه

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