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

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

True Weather 6.05 for Android

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

سخنرانی حجت الاسلام انصاریان با موضوع حقانیت امام علی(ع)

سخنرانی حجت الاسلام انصاریان با موضوع حقانیت امام علی(ع)

حاج آقا انصاریان با موضوع حقانیت امام علی(ع)

Birth of the Dragon

Birth of the Dragon

رزمی

آموزش نصب ویندوز 7 به همراه تصویر

آموزش نصب ویندوز 7 به همراه تصویر

آموزش نصب Window 7

WSUS Offline Update 12.6.1

WSUS Offline Update 12.6.1

آپدیت آفلاین ویندوز و آفیس

پیام رسان بله Bale نسخه 10.15.25 برای اندروید

پیام رسان بله Bale نسخه 10.15.25 برای اندروید

بله

Supercow

Supercow

گاو بزرگ

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

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

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

GiliSoft AI Toolkit 10.10

GiliSoft AI Toolkit 10.10

هوش مصنوعی

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

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

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

Lynda - Building a Website with Node.js and Express.js

Lynda - Building a Website with Node.js and Express.js

فیلم آموزش ساخت وبسایت با Node.js و Express.js

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

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

قرآن کریم

10 جلسه پیوند ابدی شیعیان و اهل بیت علیهم السّلام از حجت الاسلام والمسلمین انصاریان

10 جلسه پیوند ابدی شیعیان و اهل بیت علیهم السّلام از حجت الاسلام والمسلمین انصاریان

حاج آقا انصاریان با موضوع پیوند ابدی شیعیان و اهل بیت

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

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

مداحی کریمی سال 96

خاصیت دارویی عناب

خاصیت دارویی عناب

درخت عناب

سخنرانی حجت الاسلام حسینی قمی با موضوع راه های ارتباط با امام عصر (عج)

سخنرانی حجت الاسلام حسینی قمی با موضوع راه های ارتباط با امام عصر (عج)

حاج آقا حسینی قمی با موضوع راه های ارتباط با امام عصر (عج)

قالب دلخواه در وردپرس

قالب دلخواه در وردپرس

تغییر قالب سایت وردپرسی

Unity of Command II + Updates

Unity of Command II + Updates

استراتژیک جنگی

قدیمی ترین سرودهای آریایی هند

قدیمی ترین سرودهای آریایی هند

ریگ ودا سرودهایی است در مدح و جلال خدایان و موجودات گوناگون اساطیری

Safe Camera 3.2.2 for Android +2.2

Safe Camera 3.2.2 for Android +2.2

عکس برداری با قابلیت رمزنگاری

AVG Cleaner 26.16.1 for Android +8.0

AVG Cleaner 26.16.1 for Android +8.0

پاکسازی ای وی جی

Quickoffice Pro 6.5.1.12 for Android

Quickoffice Pro 6.5.1.12 for Android

برنامه کاربردی برای مشاهده و ویرایش و به اشتراک گذاشتن فایل های Office برای Android

آموزش نرم افزار Mechanical Desktop به زبان ساده

آموزش نرم افزار Mechanical Desktop به زبان ساده

آموزش مچنیکال دسکتاپ

PrintHand Mobile Print Premium 14.5.0 for Android +5.0

PrintHand Mobile Print Premium 14.5.0 for Android +5.0

برنامه پرینت

VirtualDub2 2.5.3.1197

VirtualDub2 2.5.3.1197

ویرایش فیلم

Pluralsight (TrainSignal) - CompTIA Project+ Part 1 / Part 2

Pluralsight (TrainSignal) - CompTIA Project+ Part 1 / Part 2

مجموعه‌ی 2 دوره آموزش تصویری مدرک بین‌المللی CompTIA Project+

The Last Tinker - City of Colors

The Last Tinker - City of Colors

آخرین محافظ - شهر رنگ‌ها

Operation Flashpoint - Red River

Operation Flashpoint - Red River

عملیات Flashpoint نسخه‌ی رود سرخ

Crysis Remastered

Crysis Remastered

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

FIFA 17

FIFA 17

فیفا 17 برای کامپیوتر

Lynda - Shooting with the iPhone 5s

Lynda - Shooting with the iPhone 5s

فیلم آموزش عکس‌برداری استاندارد با گوشی iPhone 5s و تنظیمات مربوطه

ALNO Kitchen Planner 15.0a

ALNO Kitchen Planner 15.0a

طراحی آشپزخانه رویائی خود و طراحی کابینت به صورت سه بعدی

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

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

آموزش تعمیرات پراید

Piano Essentials Full Album

Piano Essentials Full Album

بهترین آهنگ های پیانو

دورهٔ آموزش ویدئویی نرم‌افزار افتر افکتس به زبان فارسی

دورهٔ آموزش ویدئویی نرم‌افزار افتر افکتس به زبان فارسی

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

Wondershare Recoverit 15.0.0.22 / macOS

Wondershare Recoverit 15.0.0.22 / macOS

واندرشر ریکاوریت

ماهیت و نقش سازمان سیا

ماهیت و نقش سازمان سیا

CIA PEOPLE

امنیت بیشتر با SSl

امنیت بیشتر با SSl

امنیت با اس اس ال

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

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

آموزش سئو SEO

Gom Player Video 1.9.92 / Audio 2.3.5 for Android +5.0

Gom Player Video 1.9.92 / Audio 2.3.5 for Android +5.0

پلیر معروف گام

خبرنامه

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