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

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

منو
آیکون جستجو در سایت سافت گذر
اطلاعیه های مهم سایت اطلاعیه های مهم سایت

 

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

MAGIX VEGAS Pro 23.0.0.356

مجیکس وگاس

بیانیه راهبردی رهبر معظم انقلاب در چهلمین سالروز پیروزی انقلاب اسلامی

بیانیه راهبردی رهبر معظم انقلاب در چهلمین سالروز پیروزی انقلاب اسلامی

چهلمین سالروز پیروزی انقلاب اسلامی

Robot Squad Simulator 2017

Robot Squad Simulator 2017

شبیه ساز جوخه ربات ها 2017

ترس از سخنرانی و صحبت در یک جمع

ترس از سخنرانی و صحبت در یک جمع

بترس و صحبت کن

Heart of Darkness

Heart of Darkness

دل تاریکی

امور جهانی چگونه شناسایی می‌شوند؟

امور جهانی چگونه شناسایی می‌شوند؟

جهان چگونه اداره می‌شود؟ (تحلیل ماهیت حقوق اداری جهانی)

Sothink Logo Maker Professional 4.4 Build 4625

Sothink Logo Maker Professional 4.4 Build 4625

طراحی لوگو و برچسب

Papillon 1973

Papillon 1973

پاپیون استیو مک‌کوئین و داستین هافمن

Harry Potter 4

Harry Potter 4

هری پاتر برای کامپیوتر

آموزش علوم غریبه و دعا نویسی

آموزش علوم غریبه و دعا نویسی

کنز الحسینی

Screenshot Pro 4.1.3 for Android

Screenshot Pro 4.1.3 for Android

عکس برداری از صفحه نمایش

Pluralsight - What's New in Java 8

Pluralsight - What's New in Java 8

فیلم آموزش‌ آشنایی با ویژگی‌های جدید جاوا 8

WindowTop Pro 5.28.4

WindowTop Pro 5.28.4

مدیریت پنجره های ویندوز

Autodesk 3ds Max 2015 x64 + SP3

Autodesk 3ds Max 2015 x64 + SP3

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

آشنایی با تاریخ معاصر ایران

آشنایی با تاریخ معاصر ایران

نفوذ بهائیان در ایران

راه های رسیدن به آرامش درون

راه های رسیدن به آرامش درون

هشت درس آرامش

آموزش برنامه نویسی Crystal Report به زبان  VB

آموزش برنامه نویسی Crystal Report به زبان VB

آموزش کریستال ریپورت

Sidebar Launcher Pro 3.4.3 for Android +2.3

Sidebar Launcher Pro 3.4.3 for Android +2.3

لانچر اندروید

35 جلسه صرف میر (بخش دوم)

35 جلسه صرف میر (بخش دوم)

عربی

Ship Simulator - Maritime Search and Rescue

Ship Simulator - Maritime Search and Rescue

شبیه‌ساز کَـشتی - جستجو و نجات دریایی

weather HD 8.0.4 for Android

weather HD 8.0.4 for Android

آب و هوا بر روی LW

Microsoft Power BI Report Server May 2025 15.0.1118.125

Microsoft Power BI Report Server May 2025 15.0.1118.125

پاور بی آی ریپورت سرور

ATV Drift and Tricks

ATV Drift and Tricks

موتور چهار چرخ

Katamari Damacy REROLL

Katamari Damacy REROLL

اکشن و ماجراجویی

مجله تخصصی آموزش زبان انگلیسی

مجله تخصصی آموزش زبان انگلیسی

مجله Learn Hot English نوامبر 2020

Wolfram Mathematica 14.3 / 13.3.1 / 12.3.1 / 11.3.0 / 9.0.0.0 Win/Mac/Linux

Wolfram Mathematica 14.3 / 13.3.1 / 12.3.1 / 11.3.0 / 9.0.0.0 Win/Mac/Linux

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

Driver Magician 6.3

Driver Magician 6.3

مدیریت درایورها

فیلم آموزش کامل و سریع ایمیج گیری و اجرای ایمیج در درایو مجازی

فیلم آموزش کامل و سریع ایمیج گیری و اجرای ایمیج در درایو مجازی

آموزش ایمیج گیری و درایو مجازی

نماهنگ وفات حضرت خدیجه (سلام الله علیها)

نماهنگ وفات حضرت خدیجه (سلام الله علیها)

نماهنگ شرف همسری

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

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

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

آموزش نرم افزار معادلات ساختاری EQS

آموزش نرم افزار معادلات ساختاری EQS

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

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

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

سخنرانی رسیدن به مقام لقاء الله با زیارت امام حسین (ع) پناهیان

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

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

آموزش فارسی سازی قالب وردپرس

Lynda - Android App Development with Java Essential Training

Lynda - Android App Development with Java Essential Training

مجموعه آموزش تصویری (فیلم) شرکت لیندا در مورد ساخت نرم افزارهای اندروید با استفاده از زبان جاوا

GPU-Z 2.68 + ASUS ROG

GPU-Z 2.68 + ASUS ROG

مشخصات کارت گرافیک

Adobe Illustrator CS6 16 + Update 16.0.3

Adobe Illustrator CS6 16 + Update 16.0.3

نسخه CS6 بهترین نرم افزار طراحی تصاویر به صورت وکتور (بدون کاهش کیفیت در صورت تغییر اندازه)

XPS Viewer 1.0

XPS Viewer 1.0

نرم افزار مشاهده فايل های XPS

Lynda - Marketing Fundamentals

Lynda - Marketing Fundamentals

فیلم آموزش آشنایی با اصول بازاریابی

قصه جذاب و شنیدنی برای بچه های خوب

قصه جذاب و شنیدنی برای بچه های خوب

داستان جذاب کودکان

سخنرانی دکتر ناصر رفیعی با موضوع پیام خطبه های امام حسین(ع) - 2 جلسه

سخنرانی دکتر ناصر رفیعی با موضوع پیام خطبه های امام حسین(ع) - 2 جلسه

سخنرانی خطبه های امام حسین با ناصر رفیعی

خبرنامه

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