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

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

oneSafe 2.0.3 for Android +4.4

مدیریت رمز های عبور و کارت های اعتباری

Adobe Flash CS4 Professional 10.0.2

Adobe Flash CS4 Professional 10.0.2

نرم افزار اصلی برای ساخت کلیپ های انیمیشنی فلش

River Attack

River Attack

بازی هواپیمای آتاری

کارگردانی فیلم اثر اریک شرمن

کارگردانی فیلم اثر اریک شرمن

سخنرانی هفتاد و پنج کارگردان بین المللی

Made Man

Made Man

اعتراف به خونخواهی خانوادگی

سخنرانی حجت الاسلام پناهیان درمورد مقدرات الهی در زندگی انسان

سخنرانی حجت الاسلام پناهیان درمورد مقدرات الهی در زندگی انسان

سخنرانی حجت الاسلام پناهیان با موضوع نقش مقدرات الهی در زندگی انسان

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

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

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

Bandizip Professional 7.47 + Enterprise / macOS

Bandizip Professional 7.47 + Enterprise / macOS

باندی زیپ

XModGames 2.3.5 for Android +2.3

XModGames 2.3.5 for Android +2.3

ورود به نسخهٔ Mod یا همان ویرایش شدهٔ بازی‌های پرطرفدار اندروید

علم نحو و قواعد مربوط به آن

علم نحو و قواعد مربوط به آن

ادبیات عرب

Shio

Shio

اکشن سکویی

Office 2010 Pro Plus SP2 14.0.7268.5000 April 2021

Office 2010 Pro Plus SP2 14.0.7268.5000 April 2021

آفیس 2010 سرویس پک 2

Halo: The Master Chief Collection (5 Games) - FitGirl

Halo: The Master Chief Collection (5 Games) - FitGirl

مجموعه بازی‌های هِیلو برای کامپیوتر

توحید و تمسّک به اسمای حُسنای الهی از حجت الاسلام والمسلمین سیدمحمدمهدی میرباقری - 5 جلسه

توحید و تمسّک به اسمای حُسنای الهی از حجت الاسلام والمسلمین سیدمحمدمهدی میرباقری - 5 جلسه

حاج آقا سیدمحمدمهدی میرباقری با موضوع توحید و تمسّک به اسمای حُسنای الهی

Office 2013 All-In-One For Dummies

Office 2013 All-In-One For Dummies

آموزش آفیس 2013 دامیس

اقتصاد دستوری و اقتصاد اثباتی

اقتصاد دستوری و اقتصاد اثباتی

تأثیر مسائل ارزشی و اخلاقی در علم اقتصاد

aWHMCS 2.8.2 for Android +3.2

aWHMCS 2.8.2 for Android +3.2

کلاینت رسمی مدیریت WHMCS

Inspire Launcher Prime 16.3.0 for Android +4.1

Inspire Launcher Prime 16.3.0 for Android +4.1

لانچر اندروید با قابلیت شخصی سازی بالا

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

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

آموزش سوئیفت

برکات تقوا

برکات تقوا

پیامدهای تقوا

کیمیا 1.0.4

کیمیا 1.0.4

اولین نهج البلاغه صوتی اندروید

مستند تاریخچه و تخریب بقیع

مستند تاریخچه و تخریب بقیع

مستند قبرستان بقیع

Super Keyboard Pro 1.7.1 for Android

Super Keyboard Pro 1.7.1 for Android

کیبرد با پشتیبانی از زبان فارسی

الغوث  0.9.6

الغوث 0.9.6

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

مداحی حاج محمود کریمی سال 98

مداحی حاج محمود کریمی سال 98

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

Autodesk Revit Architecture 2015 x64

Autodesk Revit Architecture 2015 x64

بهترین نرم افزار طراحی ساختمان و معماری

PotPlayer 1.7.23118 + Portable + [LAV Filters 0.79.2]

PotPlayer 1.7.23118 + Portable + [LAV Filters 0.79.2]

پات پلیر

Pluralsight - Building a WordPress Theme Framework with Bootstrap 3

Pluralsight - Building a WordPress Theme Framework with Bootstrap 3

فیلم آموزش ساخت چارچوب تِم وردپرس با بوت‌استرپ 3

Tank 1990-Battle City HD 1.4 for Android +2.2

Tank 1990-Battle City HD 1.4 for Android +2.2

بازی خاطره‌انگیز تانک دوران کودکی با قابلیت دو نفره از طریق بلوتوث و WiFi

Batman Begins

Batman Begins

بتمن آغاز میکند

Pluralsight - VMware Fusion 6 for the IT Pro

Pluralsight - VMware Fusion 6 for the IT Pro

فیلم آموزش کاربُردهای اساسی و حرفه‌ای نرم‌افزار وی‌ام‌وِیـر فیوژِن 6

Android Firewall 2.3.5 for Android

Android Firewall 2.3.5 for Android

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

ماهنامه سلام دنیا شماره 0 تا 8

ماهنامه سلام دنیا شماره 0 تا 8

مجله سلام

Udemy - Configuring SharePoint 2013 Serve for Apps Development

Udemy - Configuring SharePoint 2013 Serve for Apps Development

Configuring SharePoint 2013 Serve for Apps Development

theHunter: Call of the Wild – Salzwiesen Park v03.12.2024

theHunter: Call of the Wild – Salzwiesen Park v03.12.2024

شبیه ساز شکار

مفاهیم اصلی ژنتیک

مفاهیم اصلی ژنتیک

سلول و عناصر ژنتیکی سلولی

آموزش MySQL

آموزش MySQL

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

Anvsoft SynciOS Professional 6.7.4 / Mobile Manager 7.0.7 / Data Recovery 3.2.2 / Data Transfer 3.4.1 / WhatsApp Transfer 2.4.8 / iOS Eraser Pro 1.1.2

Anvsoft SynciOS Professional 6.7.4 / Mobile Manager 7.0.7 / Data Recovery 3.2.2 / Data Transfer 3.4.1 / WhatsApp Transfer 2.4.8 / iOS Eraser Pro 1.1.2

سینک ای او اس

The Alters + Updates

The Alters + Updates

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

Balazs Havasi - Drum & Piano (feat. Endi) + Pure Piano Vol. 1 and Vol. 2

Balazs Havasi - Drum & Piano (feat. Endi) + Pure Piano Vol. 1 and Vol. 2

آلبوم موسیقی بی کلام پیانو

خبرنامه

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