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

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

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

 

💐 میلاد زینت پدر حضرت زینب سلام الله علیها مبارک باد 💐
 
 
  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 تعداد مشاهده: 2459
اخبار مرتبط با این خبر
نظر های کاربران
سرور آپدیت نود 32
پیشنهاد سافت گذر
JetBrains PyCharm Professional 2025.2.1.1 Win/Mac/Linux

JetBrains PyCharm Professional 2025.2.1.1 Win/Mac/Linux

جت برینز پای چارم

نخستین کتاب حدیث تاریخ اسلام

نخستین کتاب حدیث تاریخ اسلام

فضائل اهل بیت از زبان پیامبر اکرم صلّی الله علیه و آله

Xilisoft ISO Burner 1.0.56.1601

Xilisoft ISO Burner 1.0.56.1601

نرم افزار کاربردی برای رایت فایل های ISO

Unknown

Unknown

اکشن حادثه ای

Kings of Kung Fu

Kings of Kung Fu

پادشاهان کونگ فو

سخنرانی حجت الاسلام عالی سال 98

سخنرانی حجت الاسلام عالی سال 98

محرم شب اول تا شام غریبان حجت الاسلام مسعود عالی

Murder on the Orient Express

Murder on the Orient Express

هرکول پوآرو

Marble Muse

Marble Muse

تیله‌ی غلتان

FolderMount Premium 2.9.13 for Android +2.3

FolderMount Premium 2.9.13 for Android +2.3

انتقال فایلها

AirDroid 4.3.4.0 + Windows Client 3.6.3 for Android +4.0

AirDroid 4.3.4.0 + Windows Client 3.6.3 for Android +4.0

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

Udemy - English Grammar Pro | Beginner to Advanced (A1-C1) Grammar

Udemy - English Grammar Pro | Beginner to Advanced (A1-C1) Grammar

آموزش کامل گرامر زبان انگلیسی

PillowView 1.0

PillowView 1.0

ویرایش عکس‌

SolidWorks Premium 2013 Integrated SP5 x86/x64

SolidWorks Premium 2013 Integrated SP5 x86/x64

نرم افزار سالید ورکس 2013 جهت طراحی سازه های صنعتی به صورت ۳ بعدی

معرفی مشخصات و قابلیت‌های  آیفون 7

معرفی مشخصات و قابلیت‌های آیفون 7

آیفون 7

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

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

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

Et si tu n'existais pas - Joe Dassin

Et si tu n'existais pas - Joe Dassin

آهنگ اگر تو وجود نمی‌داشتی از ژو دسن

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

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

سخنرانی پرهیز از اسراف با حاج آقا فرحزاد

پیام رسان گپ 11.7.1 برای اندروید

پیام رسان گپ 11.7.1 برای اندروید

گپ

Paragon HFS+ for Windows 14.0.24

Paragon HFS+ for Windows 14.0.24

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

Learn 50 languages 12.3 for Android +2.3

Learn 50 languages 12.3 for Android +2.3

آموزش 50 زبان

اسرار غدیر تألیف محمد باقر انصاری

اسرار غدیر تألیف محمد باقر انصاری

واقعه غدیر خم

Immortal Redneck - Infinite Tower

Immortal Redneck - Infinite Tower

اکشن شوتر سه بعدی

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

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

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

راهنمای استفاده از فورتی گیت (FortiGate)

راهنمای استفاده از فورتی گیت (FortiGate)

آموزش FortiGate

ابوذر مسلمان

ابوذر مسلمان

ویژگی های ابوذر غفاری

Doors And Rooms 3 v1.5.6 for Android +3.0

Doors And Rooms 3 v1.5.6 for Android +3.0

بازی درها و اتاق ها

Asphalt 9 Legends 2.9.4a for Android +4.3

Asphalt 9 Legends 2.9.4a for Android +4.3

آسفالت 9

SiSoftware Sandra Business / Personal / Tech Support (Engineer) 2016.03.22.20

SiSoftware Sandra Business / Personal / Tech Support (Engineer) 2016.03.22.20

بهترین برنامه برای بدست آوردن مشخصات دقیق سیستم و تست قطعات و مقایسه با نتایج استاندارد

Film Impact Premium Video Effects 25.2.5

Film Impact Premium Video Effects 25.2.5

افزونه پریمیر پرو

ذخیره و بازیابی اطلاعات

ذخیره و بازیابی اطلاعات

آشنایی با روشهای ذخیره و بازیابی اطلاعات

SIW 2025 v15.11.1119 Technician

SIW 2025 v15.11.1119 Technician

نمایش مشخصات سیستم

چگونه در اینترنت سرمان کلاه نرود!

چگونه در اینترنت سرمان کلاه نرود!

همه چیز درباره کلاهبرداری اینترنتی

ExamDiff Pro Master Edition 16.0.1.17

ExamDiff Pro Master Edition 16.0.1.17

مقایسه فایل‌ها و فولدرها

Stellar Toolkit for File Repair 2.5.0.0

Stellar Toolkit for File Repair 2.5.0.0

تعمیر و بازیابی فایل‌های خراب آفیس

بانک جامع عاشورا for Android

بانک جامع عاشورا for Android

نرم افزار جامع عاشورا و عاشوراییان

Microsoft Visual Studio 2026 Enterprise v18.1.1

Microsoft Visual Studio 2026 Enterprise v18.1.1

ویژوال استودیو 2026

DSub 5.3.5 for Android +4.0

DSub 5.3.5 for Android +4.0

موزیک پلیر آنلاین

Autodesk AutoCAD Electrical 2016 SP1 x86/x64

Autodesk AutoCAD Electrical 2016 SP1 x86/x64

طراحی و مستندسازی مدارات الکتریکی

ZHEROS

ZHEROS

دو قهرمان

Ice Age Continental Drift Arctic Games

Ice Age Continental Drift Arctic Games

عصر یخبندان 4 - رانش زمین - بازیهای قطبی

خبرنامه

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