IRANSYSTEM

ایران سیستم|IRANSYSTEM

IRANSYSTEM

ایران سیستم|IRANSYSTEM

IRANSYSTEM

تیم اموزشی ایران سیستم با هدف اشنا کردن علاقه مندان به اموزش مسائل کامپیوتر. نرم افزار . بازی و ...
در این سایت تلاش کردیم، تمامی نیازهای کاربران برای دسترسی سریع و آسان به محتوای کاربردی در حوزه‌های مختلف را هم‌ زمان فراهم آوریم.
با تشکر

مشکلات سی شارپ 1

سه شنبه, ۲۴ بهمن ۱۳۹۶، ۰۵:۱۰ ب.ظ

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

یه مثال ساده میزنم :
برای مثال برنامه ای نوشتیم که وظیفه داره وقتی اجراش کردیم یک سایت رو بررسی کنه و تمام پست ھا رو تویه قالب خاصی بھمون نمایش بده

بعد از نمایش مطالب یسری اعمال دیگه مثل شخصی سازی پیام هارو برامون انجام بده

حالا فرض کنید این برنامه رو اجرا کردیم و اینبار اینترنتمون قطعه ، در این صورت اگه برنامه نویس تازه کاری بوده باشید برنامه ھنگ میکنه و مجبور میشید به سختی کل برنامه رو غیر فعالش کنید

خوب حالا راهکار چیه؟

بھترین روش برای جلو گیری از این خطا ھا اینه که از :

Try {} catch {}

استفاده کنیم
در کل به این شکله که قبل از کدھای اصلیمون Try رو قرار میدیم و بعد از اتمام شدن کدھا catch رو اضافه میکنیم و یک سری دستورات دیگه میدیم
با این کارھا دستور داده ایم که :
ابتدا دستوراتی که در Try وجود داره رو اجرا کن اگه دستورات مشکلی داشتن بیخیال شو و برو به دستوراتی که در قسمت catch نوشته شدن برس :)
به مثال زیر دقت کنید:

private void button1_Click(object sender, EventArgs e)
{
char charData;
if (textBox1.Text != string.Empty)
{
charData = (char) Convert.ToInt32 (textBox1.Text);
textBox2.Text = ((char)charData).ToString();
}
}

کد بالا کدھای اسکی رو به کلمات تبدیل میکنه
اگه بجای کدھای اسکی ، کلمه ای وارد کنیم برنامه ھنگ میکنه و ما مجبور میشیم برنامه رو ببندیم
ولی اگه کد رو به شکل زیر بنویسیم

private void button1_Click(object sender, EventArgs e)
{
char charData;
if (textBox1.Text != string.Empty)
try
{
charData = (char) Convert.ToInt32 (textBox1.Text);
textBox2.Text = ((char)charData).ToString();
}
catch
{
string St = textBox1.Text;
string Str = string.Empty;
foreach (char C in St)
{
Str = Str + " " + (Convert.ToInt32(C)).ToString();
}
textBox2.Text = Str;
}
}

تکه کد اصلی در صورت اخطار به کدھای قسمت دوم میاد که این کد ھم کارش تبدیل کردن کلمات به کد اسکیه
ما میتونیم بعد از 
catch ھر کد دیگه ای استفاده کنیم مثلا میتونیم کدی قرای بدیم که در صورت اخطار برنامه رو خود به خود ببنده

private void button1_Click(object sender, EventArgs e)
{
char charData;
if (textBox1.Text != string.Empty)
try
{
charData = (char) Convert.ToInt32 (textBox1.Text);
textBox2.Text = ((char)charData).ToString();
}
catch
{
MessageBox.Show ("برنامه دچار مشکل شده است");
this.Close();
}
}

برنامه دچار مشکل شده است رو نمایش میده و خود به خود بسته میشه

در کل ما مشکلات احتمالی که ممکنه در طی اجرای برنامه پیش بیاد رو پیش بینی میکنیم و به برنامه میگیم که در صورت بروز مشکل چه کاری انجام بده

از این کد میشه خیلی جاها استفاده کرد!!!

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی