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

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

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

تقویت شهرت آنلاین

راه های کسب شهرت آنلاین

ادعیه ماه مبارک رمضان

ادعیه ماه مبارک رمضان

دعاهای ماه مبارک رمضان

Worms Revolution + Update 7 + Customization Pack DLC

Worms Revolution + Update 7 + Customization Pack DLC

انقلاب کرمها

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

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

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

برنامه تمرینی حجم ساز پیشرفته

برنامه تمرینی حجم ساز پیشرفته

آشنایی با مکمل های افزایش حجم

نقاط ضعف و قوت ویندوز 7 را بشناسید

نقاط ضعف و قوت ویندوز 7 را بشناسید

نقاط ضعف و قوت ویندوز سون

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

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

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

انگلیس و اشغال ایران در جنگ جهانی اول

انگلیس و اشغال ایران در جنگ جهانی اول

ایران در جنگ جهانی اول.

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

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

حاج آقا راشد یزدی با موضوع اخلاق کریمانه

Sudoku v1.3.3.0

Sudoku v1.3.3.0

سودوکو نسخه 1.3.3.0 برای کامپیوتر

احساس تنهایی، پوچی و بیهودگی

احساس تنهایی، پوچی و بیهودگی

بررسی جامعه‌شناختی عوارض تنهایی در جوامع نوین

Spendee Pro 4.3.3 For Android +4.0.3

Spendee Pro 4.3.3 For Android +4.0.3

اسپنده

بیماری های غدد در طب اسلامی ایرانی

بیماری های غدد در طب اسلامی ایرانی

کبد، طحال، تیروئید و ...

نقش و تأثیر شجاعت در زندگی

نقش و تأثیر شجاعت در زندگی

با شجاع بودن می توانیم به اهدافمان برسیم

The Lion in Winter 2003

The Lion in Winter 2003

شیر در زمستان

Fling! 1.1.4.2 for Android

Fling! 1.1.4.2 for Android

بازی با گلوله های پشمالو!!

Abelssoft Easy PDF 2026 v7.01.66068

Abelssoft Easy PDF 2026 v7.01.66068

ویرایش پی دی اف

Marvel’s Spider-Man Remastered v2.217.1.0

Marvel’s Spider-Man Remastered v2.217.1.0

مرد عنکبوتی برای کامپیوتر

Autorun Organizer 6.30

Autorun Organizer 6.30

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

Computers (Islamic law)

Computers (Islamic law)

فقه و زندگی : احکام رایانه و اینترنت

فیلم‌های آموزش فارسی بهینه‌سازی موتور جستجو SEO

فیلم‌های آموزش فارسی بهینه‌سازی موتور جستجو SEO

آموزش سئو SEO

اثری سودمند برای آشنایی با تاریخ، فرهنگ و ادبیات کشور کره

اثری سودمند برای آشنایی با تاریخ، فرهنگ و ادبیات کشور کره

داستان های جذاب از کره

Gerda: A Flame in Winter

Gerda: A Flame in Winter

گردا

PES 2014 - Pro Evolution Soccer 2014 With Update v1.13 with Crackfix

PES 2014 - Pro Evolution Soccer 2014 With Update v1.13 with Crackfix

فوتبال حرفه ای 2014

احیای کسب و کارهای شکست خورده

احیای کسب و کارهای شکست خورده

درس هایی برای موفقیت تجاری

Harry Potter and the Chamber of Secrets

Harry Potter and the Chamber of Secrets

هری پاتر

آموزش نرم افزار ESET Nod32 Antivirus

آموزش نرم افزار ESET Nod32 Antivirus

آموزش ایست نود 32 آنتی ویروس

HERE WeGo Maps & Navigation 4.2.200 for Android +7.0

HERE WeGo Maps & Navigation 4.2.200 for Android +7.0

نقشه و مسیر یاب هییر

BubbleUPnP for DLNA /Chromecast 3.6.5 Pro For Android 5.0

BubbleUPnP for DLNA /Chromecast 3.6.5 Pro For Android 5.0

بابل دی ال ان ای

PointWise 2024.1 Win/Linux/Mac

PointWise 2024.1 Win/Linux/Mac

آنالیز مدل های سه بعدی پوینت وایز

Phobia

Phobia

ماجرایی ترسناک

CST STUDIO SUITE 2020.01 SP1 / 2019

CST STUDIO SUITE 2020.01 SP1 / 2019

شبیه سازی الکترو مغناطیس

Udemy - The Complete Python Bootcamp From Zero to Hero in Python

Udemy - The Complete Python Bootcamp From Zero to Hero in Python

دوره آموزش کامل پایتون

Adobe Premiere Pro CS4 v4.2.1

Adobe Premiere Pro CS4 v4.2.1

قویترین و حرفه ای ترین نرم افزار ویرایش و میکس و مونتاژ فیلم

راهنمای کاربر Nokia N9

راهنمای کاربر Nokia N9

آموزش نوکیا ان 9

همراه بانک انصار نسخه 4.6.0 برای اندروید

همراه بانک انصار نسخه 4.6.0 برای اندروید

موبایل بانک انصار

Battery HD Pro 1.99.41 for Android +8.0

Battery HD Pro 1.99.41 for Android +8.0

نرم افزار مدیریت مصرف باتری

FileMaker Pro 20.3.1.31 + Server / macOS

FileMaker Pro 20.3.1.31 + Server / macOS

مدیریت بانک اطلاعاتی فایل میکر

دین چیست؟

دین چیست؟

رابطه با خدا

Easy learning algebra

Easy learning algebra

چکیده جبر

خبرنامه

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