آموزش سی شارپ قسمت 55 : دستور Try ... Catch
#C یک سری آیتمهای داخلی دارد که بوسیله آنها میتوانید خطاهای احتمالی در کدنویسی را ردیابی کنید. در این روش به #C میگوییم تا کدهای نوشته شده را امتحان یا Try کند و در صورتی که آزمایش کدها موفق نباشد خطای ایجاد شده را میگیریم یا Catch می کنیم. ساختار این دستور بصورت زیر است:
try
{
}
catch
{
}
در کد زیر میخواهیم یک فایل متنی را وارد یک RichTextBox بنام rtb کنیم:
try
{
rtb.LoadFile("C:\\test.txt");
}
گcatch (System.Exception excep)
{
MessageBox.Show(excep.Message);
}
به " \ " بعد از " C " توجه کنید:
C:\\test.txt
در #C بطور قراردادی باید از دو " \ " به همراه یکدیگر استفاده کنیم.
کدی که تصمیم داریم امتحان کنیم در بین براکتهای { } try می نویسیم. میدانیم که فایل متنی وجود ندارد اما میخواهیم خطای "File not Found" نمایش داده شود. کد مربوطه را در قسمت catch می نویسیم. به آنچه در بین پرانتزها ( ) بعد از catch مینویسیم توجه کنید:
System.Exception excep
Exception یک کلاس داخلی در #C است که خطاهای ایجاد شده در برنامه را پیدا می کند و به دنبال کلمه System (که namespace نام دارد) می آید.
بعد از Exception یک فاصله میگذاریم و یک متغیر دلخواه را وارد می کنیم. در اینجا نام این متغیر را except گذاشته ایم. میتوانیم نام آن را عبارت دلخواه دیگری بگذاریم.
کد زیر را در بین براکتهای { } cach می نویسیم:
MessageBox.Show(excep.Message);
از Messagebox برای نمایش پیغام خطا استفاده کرده ایم. بعد از متغیر excep یک نقطه " . " تایپ کنید. با این عمل لیست IntelliSense ظاهر می شود:
اگر میخواهید پیغام داخلی سیستم نمایش داده شود message را از لیست انتخاب کنید. یک messagebox در هنگام اجرای برنامه خواهید دید.
اگر نوع خطایی که نشان داده می شود میشناسید میتوانید از آن در کدنویسی استفاده کنید:
catch (System.IO.FileNotFoundException)
{
MessageBox.Show("File not found");
}
برای پیدا کردن نوع خطایی که ایجاد میشود از کد زیر استفاده کنید:
catch (System.Exception excep)
{
MessageBox.Show( excep.GetType().ToString() );
}
messegebox به شما خواهد گفت که سیستم چه نوع خطایی را ایجاد خواهد کرد. میتوانید آن را در بین پرانتز های ( ) catch استفاده کنید.
اگر میخواهید رون کار به سادگی پیش رود میتوانید از پرانتزهای بعد از catch صرف نظر کنید.
در کد زیر تنهای خطای مورد نظر خودمان را ایجاد می کنیم:
try
{
rtb.LoadFile("C:\\test.txt");
}
catch
{
MessageBox.Show("An error occurred");
}
در صورت تمایل میتوانید از بخشهای catch بیشتری اضافه کنید.
try
{
rtb.LoadFile("C:\\test.txt");
}
catch
{
MessageBox.Show("An error occurred");
}
catch
{
MessageBox.Show("Couldn't find the file");
}
catch
{
MessageBox.Show("Or maybe it was something else!");
}
نتیجه کار بستگی به خطاهایی دارد که احتمال میدهید در برنامه ایجاد شود. اگر فایلها پیدا شوند اما نتوانند در RichTextBox لود شوند چه اتفاقی خواهد افتاد؟
در هر حالت دو بخش catch لازم داریم. برای هر احتمال یک عدد.
در انتها یک بخش دیگر به کد اضافه می کنیم:
try
{
rtb.LoadFile("C:\\test.txt");
}
catch (System.Exception excep)
{
MessageBox.Show(excep.Message);
}
finally {
//CLEAN UP CODE HERE
}
بخش آخر را برای کامل کردن برنامه اضافه می کنیم. مثلازمانی که فایلی را که نیاز به بستن دارد باز کرده اید. بخش انتهایی هنگامی که تنها یک catch وجود داشته باشد اجرا خواهد شد.
در بخش catch بخش دیگری نیز میتوان اضافه نمود که throw نام دارد. از این بخش زمانی استفاده می کنیم که میخواهیم عملیات بیشتری با خطایی که در برنامه ایجاد میشود انجام دهیم. مثلا میخواهیم خطا را به #C برگردانیم یا بدون استفاده از try … catch خطا را پیدا کنیم. زیاد در این مورد ناراحت نباشید.
روش Try … Catch نیاز به توضیحات زیادی دارد لذا ما در طول این دوره دیگر از این روش استفاده نخواهیم کرد با این وجود باید تا جایی که میتوانید آن را بکار برید بخصوص هر زمان احساس کردید که در برنامه امکان بروز خطاهای خاصی وجود دارد باید از این روش استفاده کنید.
این فصل در یک نگاه:
آموزش ارسال پیامک، آموزش ارسال پیامک تکی و گروهی ، ارسال پیامک به صورت اختصاصی برای هر مشترک، دریافت پیامک، مشاهده وضعیت…
توضیحات کلی مجموعه: آیا می دونید قیمت نرم افزارهای مدیریت پیامک در حدود 150 هزار تومان است؟ اما توسط این دوره شما میتونید با مبلغ بسیار کمتر یک نرم افزار مدیریت پیامک رو به صورت کاملا حر…این فصل در یک نگاه:
در این فصل که فصل پایانی این دوره می باشد در مورد نحوه ساختن فایل نصبی سریع یا همان quick installer که روش پیشنهاد شده م…
توضیحات کلی مجموعه: پس از بازخوردهای بسیار خوبی که از دوره های آموزش برنامه نویسی سیستم اتوماسیون اداری و آموزش برنامه نویسی سیستم فروش و انبارداری مشاهده کردیم، تصمیم گرفتیم با توجه به درخ…این فصل در یک نگاه:
در این فصل که فصل آخر از مجموعه بزرگ آموزش سیستم اتوماسیون اداری می باشد در ابتدا در مورد اسناد و نامه های خارج از سازما…
دوره صفر تا صد آموزش برنامه نویسی و پیاده سازی سیستم اتوماسیون اداری تحت شبکه. (توصیه می شود دومی مجموعه را حتما ببینید) امروزه اطلاعات یکی از مهمترین و با ارزشترین منابع هر اداره و یا ساز…این فصل در یک نگاه:
توضیح تنظیمات گرافیک و صدا در یونیتی پیاده سازی منو ها …
به نام خدا بازیسازی یک حرفه بسیار جذاب است و تبدیل شدن به یک بازیساز حرفهای آرزوی همه ماست. اینکه بتوانیم دنیای خاصی خلق کنیم و در این دنیا قوانین خود را پیاده کنیم، همیشه ما را به وج…این فصل در یک نگاه:
اجرای سیستم روی سیستم، قرار دادن سیستم روی سرور، تعریف Connetion String، آشنایی با فایل App.config، ساخت رشته اتصال به ص…
مهمترین تکنولوژیهای استفاده شده در این دوره پروژه محور (سیستم فروش کالا و انبارداری) طراحی گرافیکی به روش WPF (Windows Presentaion Foundation) آموزش کامل برنامه نویسی xaml (برای طراحی های …این فصل در یک نگاه:
فصل پنجم…
توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…