PDA

View Full Version : سوال: سوالاتی در مورد کنترل استثنا ها



IMANAZADI
سه شنبه 12 مرداد 1389, 14:22 عصر
با سلام خدمت دوستان عزیز
میخواستم بدونم که دستورات try , catch , finally کاربردشون چیه ؟

البته یه سری چیزا میدونم ولی بیشتر و دقیق

در برنامه ایی که مینویسیم اگر استثنایی اتفاق بیفته کنترل به catch انتقال پیدا میکنه ولی امکان داره ما در زیر یک try چندین catch داشته باشیم
بطور مثال




try
}
int a,b,c,d,e,f;

a=int.parse(textbox1.text);
b=int.parse(textbox2.text);
c=int.parse(textbox3.text);
d=a/b ;
e=int.parse(text1.text)*a;
f=a/c;
{


در مثال بالا
فرض کنید
کاربر تکس 1 و 2 را اعشار وارد کنه
یا بجای عدد کاراکتر وارد کنه
یا تکس سوم 0 وارد کنه
آیا میشه واسه هر کدوم catch جدا نوشت


catch (اگر اعشار بود)
{
}
catch (اگر کاراکتر بود)
{
}
catch (اگر 0 بود)
{
}


بعد اینجا کار finally چیه ؟؟؟
آیا باید در try از throw استفاده کنیم
کار throw چیه ؟؟
آیا حتما باید throw رو وارد کنیم اگر نکیم چه میشود ؟؟

لطفا کامل توضیح بدید .
با تشکر

IMANAZADI
سه شنبه 12 مرداد 1389, 20:39 عصر
كسي نبود راهنمايي كنه ؟

ricky22
سه شنبه 12 مرداد 1389, 20:48 عصر
بعد اینجا کار finally چیه ؟؟؟
آیا باید در try از throw استفاده کنیم
کار throw چیه ؟؟
آیا حتما باید throw رو وارد کنیم اگر نکیم چه میشود ؟؟

لطفا کامل توضیح بدید .
با تشکر




How to: Explicitly Throw Exceptions (http://msdn.microsoft.com/en-us/library/xhcbs8fz%28v=VS.80%29.aspx)
try-catch-finally (C# Reference) (http://msdn.microsoft.com/en-us/library/dszsf989%28v=VS.80%29.aspx)

Finally کدی هست که در هر صورت اجرا میشه.
Throw برای اینه که شما خودتون استثنا رو مدیریت کنید و خطا پاس بدین مثلا در تابع خودتون می گید اگر نام خانوادگی خالی بود
Throw new exception("error")
نیازی به حتما وارد کردن نیست.

8815481079
دوشنبه 25 مرداد 1389, 21:35 عصر
دستورtry و catch و finally به منظوراستثنا به كارمي رود.يه مثال جامع:
try{
int a=5.5;
int b=8.6'
int c=a+b'
label 1.text=c.ToString();
}
catch{
messagebox.show("خطادر متغير")}
Finally{messagebox.show("تقسيم نمي شه")}
در بلوك try برنامه سعي مي كنه متغيرint به به float تبديل كنه.و...