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

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

Locked-in syndrome

نشانگان قفل‌شدگی

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

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

برخورد والدین با فرزندان از زبان حجت الاسلام رفیعی

Morphine

Morphine

مورفین

حرکات ساده ورزشی

حرکات ساده ورزشی

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

Battle Academy 2 - Eastern Front

Battle Academy 2 - Eastern Front

آکادمی جنگ 2 - جبهه‌ی شرقی

مداحی حاج سید مهدی میرداماد سال 98

مداحی حاج سید مهدی میرداماد سال 98

دهه محرم میرداماد

آموزش DirectX

آموزش DirectX

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

Microsoft Lync Server 2013 x64 / 2013 SP1 Client x86/x64

Microsoft Lync Server 2013 x64 / 2013 SP1 Client x86/x64

نرم افزار برگزاری ویدیو کنفرانس با امکانات جانبی متعدد و پیشرفته

5 جلسه سخنرانی حجت الاسلام غلامرضا قاسمیان با موضوع قسط و عدل

5 جلسه سخنرانی حجت الاسلام غلامرضا قاسمیان با موضوع قسط و عدل

سخنرانی حجت الاسلام غلامرضا قاسمیان با موضوع کبر

Fruit Ninja Puss in Boots 1.0.4 for Android

Fruit Ninja Puss in Boots 1.0.4 for Android

نسخه جدید بازی نینجا میوه ها

PC Magazine January 2016 - December 2016

PC Magazine January 2016 - December 2016

پی سی مگزین

Video to MP3 Converter Premium 2.1.0.3 for Android +4.3

Video to MP3 Converter Premium 2.1.0.3 for Android +4.3

تبدیل ویدئو به صدا

Football Manager 2015

Football Manager 2015

مدیریت فوتبال 2015

Endzone A World Apart Distant Places v1.2.8334

Endzone A World Apart Distant Places v1.2.8334

استراتژی مدیریتی برای کامپیوتر

Wondershare Repairit 6.6.1.7 / macOS

Wondershare Repairit 6.6.1.7 / macOS

تعمیر انواع فایل‌های ویدئویی و صوتی آسیب دیده

The USA’s greatest adversary

The USA’s greatest adversary

سوداگران زمان

Angels and Demons

Angels and Demons

فرشتگان و شیاطین

نور احکام

نور احکام

رساله ویدیویی احکام شرعی

روز غدیر

روز غدیر

مبانی قرآنی زیارت حضرت امیر المومنین علیه السلام

UFS Explorer Pro Recovery 10.11.1.7264

UFS Explorer Pro Recovery 10.11.1.7264

بازیابی اطلاعات

Dustforce DX

Dustforce DX

داست‌فورس

Monster Story 1.0.5.4 for Android

Monster Story 1.0.5.4 for Android

بازی داستان هیولاها

Race Stunt Fight! Motorcycles 3.1 for Android

Race Stunt Fight! Motorcycles 3.1 for Android

مسابقات موتور سواری

آشنایی با فواید آب قلیایی

آشنایی با فواید آب قلیایی

آب قلیایی چیست, خواص آب قلیایی

آموزش انواع سالاد و غذاهای حاضری

آموزش انواع سالاد و غذاهای حاضری

انواع ساندویچ و رستوران های فست فودی

زمانه و مرگ اسرار آمیز سید مصطفی خمینی

زمانه و مرگ اسرار آمیز سید مصطفی خمینی

میزگردی پیرامن مرگ اسرار آمیز سید مصطفی خمینی

Building the Sukhoi Su-27 - The Best Fighter Jet in the World

Building the Sukhoi Su-27 - The Best Fighter Jet in the World

مستند هواپیمای جنگنده سوخو

iMediaShare – Photos & Music 1.0.10 for Android +2.2

iMediaShare – Photos & Music 1.0.10 for Android +2.2

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

نقش حضرت زینب (س) در احیای تشیّع از زبان آیت الله حسین مظاهری

نقش حضرت زینب (س) در احیای تشیّع از زبان آیت الله حسین مظاهری

نقش حضرت زینب (س) در احیای تشیّع از زبان آیت الله حسین مظاهری

Action Launcher 50.1 / 48.1 Plus for Android +4.1

Action Launcher 50.1 / 48.1 Plus for Android +4.1

لانچر اکشن

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

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

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

RESIDENT EVIL 2 Deluxe Edition

RESIDENT EVIL 2 Deluxe Edition

رزیدنت اویل 2

A-Train 9

A-Train 9

شبیه‌ساز حمل‌ونقل قطار شهری نسخه‌ی 9

The Shawshank Redemption

The Shawshank Redemption

رستگاری در شاوشنگ

Claws and Feathers v1.0.3.0

Claws and Feathers v1.0.3.0

چنگال‌ها و پرها

Indiana Jones and the Great Circle

Indiana Jones and the Great Circle

ایندیانا جونز

مداحی سید رضا نریمانی سال 98

مداحی سید رضا نریمانی سال 98

محرم شب اول تا شام غریبان نریمانی

تاریخ محمدی: احسن التواریخ

تاریخ محمدی: احسن التواریخ

اصل و نسب خاندان قاجار

Aven Colony + Updates

Aven Colony + Updates

استراتژیک مدیریتی

Exercise Timer Premium 7.022 For Android +4.0.3

Exercise Timer Premium 7.022 For Android +4.0.3

تایمر ورزشی

خبرنامه

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