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

همه دسته بندی ها

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

آموزش کامل و جامع Ulead Video Studio

ulead video studio

Odyssey - The Next Generation Science Game

Odyssey - The Next Generation Science Game

علمی تخیلی

Minimal Firewall 2.6.7

Minimal Firewall 2.6.7

فایروال ویندوز

IZArc 4.6

IZArc 4.6

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

gBurner 5.6 Full + Portable / Virtual Drive

gBurner 5.6 Full + Portable / Virtual Drive

رایت و کار با ایمیج برنامه جی برنر

غول های اینترنت ایران و جهان

غول های اینترنت ایران و جهان

بررسی برترین های غول اینترنتی ایران و جهان

مقاومت، همگرایی و سرنوشت تمدنی ما

مقاومت، همگرایی و سرنوشت تمدنی ما

مجموعه آثار علمی همایش بین المللی بیانیه گام دوم انقلاب

زندگانی حضرت یوسف علیه السلام

زندگانی حضرت یوسف علیه السلام

حضرت یوسف علیه السلام ( Joseph )

Backgammon Blitz

Backgammon Blitz

بک‌گامون بلیتز | شبیه‌ساز تخته نرد

Mutant Year Zero: Road to Eden

Mutant Year Zero: Road to Eden

استراتژیک نوبتی

Supercow

Supercow

گاو بزرگ

Martial Arts of Shaolin

Martial Arts of Shaolin

معبد شائولین

Adobe Photoshop Lightroom 9.1.1 For Android +4.1

Adobe Photoshop Lightroom 9.1.1 For Android +4.1

فتوشاپ لایت روم

Perfectly Clear Video 4.6.1.2701

Perfectly Clear Video 4.6.1.2701

بالا بردن کیفیت فیلم با هوش مصنوعی

ClusterPuck 99 v1.3

ClusterPuck 99 v1.3

هاکی روی یخ هوایی

Clones

Clones

کلون‌ها - نسخه‌ی جدید 4 زبانه

سخنرانی استاد پناهیان درباره عید غدیر

سخنرانی استاد پناهیان درباره عید غدیر

پناهیان درباره عید غدیر

SHAREit for PC 4.0.6.177 / 4.0.4.152

SHAREit for PC 4.0.6.177 / 4.0.4.152

شریت

PC Building Simulator 2 v1.5.20

PC Building Simulator 2 v1.5.20

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

Power-user Premium 1.7.74.302

Power-user Premium 1.7.74.302

افزونه ورد، پاورپوینت و اکسل

Xplorer2 Professional + Ultimate 6.3

Xplorer2 Professional + Ultimate 6.3

مدیریت فایل ها در ویندوز

Screenpresso Pro 2.1.39

Screenpresso Pro 2.1.39

ضبط صفحه نمایش

Lynda - Webinar Fundamentals

Lynda - Webinar Fundamentals

فیلم آموزش اصول بنیادی رایاهمایی (وبینار) – مهارت‌های کلی برگزاری همایش‌ اینترنتی

سلسله مباحث استاد شجاعی قسمت هفتم

سلسله مباحث استاد شجاعی قسمت هفتم

ظهور امام زمان

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

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

آموزش تصویری و فارسی نرم افزار مالتی مدیا بیلدر (ساخت آتوران برای CD)

Macrorit Data Wiper 8.3.0 Technician

Macrorit Data Wiper 8.3.0 Technician

پاک کردن اطلاعات هارد

!Pokémon the Movie: I Choose You

!Pokémon the Movie: I Choose You

پوکمون

آشنایی با تحلیل آماری

آشنایی با تحلیل آماری

نرم افزار آماری spss

English Visual Vocabulary Builder 1.2.9

English Visual Vocabulary Builder 1.2.9

آموزش لغات انگلیسی

Primordia + Update 1.1

Primordia + Update 1.1

خاستگاه

Spintires - China Adventure

Spintires - China Adventure

اسپین تایرز

Aperty 1.2.1.978

Aperty 1.2.1.978

ویرایش عکس

Shiftlings

Shiftlings

نجات کهکشان

What Mobile Magazine June 2015 - May 2016

What Mobile Magazine June 2015 - May 2016

مجله موبایل وات

A Virus Named TOM

A Virus Named TOM

ویروسی به نام تام

InfiniteSkills – Learning Oracle 11g Training Video

InfiniteSkills – Learning Oracle 11g Training Video

فیلم آموزش کامل اُراکل 11‌جی ، برترین نرم‌افزار پایگاه داده

Lynda - Building Adaptive Android Apps with Fragments

Lynda - Building Adaptive Android Apps with Fragments

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

استانداردهای وب

استانداردهای وب

Web Standard

نهضت حسینی از منظر امام خامنه ای

نهضت حسینی از منظر امام خامنه ای

72 سخن عاشورایی از بیانات مقام معظم رهبری

آموزش فارسی CorelDRAW

آموزش فارسی CorelDRAW

آموزش کورل دراو

خبرنامه

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