PDA

View Full Version : سوال: يك سوال كوچيك از try و catch



rahe behtari hast
دوشنبه 13 آذر 1391, 15:33 عصر
try
{
}
() catch
{
}

ميخوام اطلاعات داخل يك جدول رو پر كنم
در اين حالت فقط 3 تا خطا ممكنه رخ بده

وقتي ورودي خاليه
وقتي نوع ورودي با نوع اون فيلد يكسان نيست
وقتي كليد جدول تكراري باشه

باري هر كدوم داخل پرانتز catch چي بايد بنويسم؟

danialafshari
دوشنبه 13 آذر 1391, 15:37 عصر
سلام
کار این کد مدیریت اثتثناها است
یعنی اگر شکت اروری رو پیش بینی نکردی دستور درون Catch اجرا میشه
شما درون Try کدهای اعم از خالی بودن و تکراری بودن رو بزار بعدش Return; بزار که به سراغ بعدی نره
در Catch هم یک پیغام میزاری که در صورت کنترل نکردن اون در Try در Catch ارور رو نشون میده
try
{
//دستورات
}
catch
{
messageBox.show("Error");
}
موفق باشی

rahe behtari hast
دوشنبه 13 آذر 1391, 16:00 عصر
خب اين چيزي كه شما نوشتيد خطا به هر دليلي كه باشه يك پيغام رو نشون ميده اما من اين رو نميخوام
من ميخوام پيغام دليل خطا رو توضيح بده

try
{
دستورات
}
catch(خالي بودن فيلدها)
{
پيغام اول
}
catch(يكسان نبودن نوع فيلدها)
{
پيغام دوم
}
catch(تكراري بودن كليد جدول)
{
پيغام سوم
}

danialafshari
دوشنبه 13 آذر 1391, 16:53 عصر
سلام
کاربردش این طور نیست
همونطور که گفتم شرط رو باید درون بلاک Try بنویسید
به کد زیر توجه کنید :
try
{
int a = int.Parse(textBox1.Text);
int b = int.Parse(textBox2.Text);
MessageBox.Show(a.ToString() + b.ToString());
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
اگر در textbox ها حرف وارد کنید Catch اجرا میشه و پیغام آبرو بر دات نت نمیاد

اینم ساختارش (http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(CATCH_CSHARPKEYWORD);k(CATCH);k(TargetFramewor kMoniker-%22.NETFRAMEWORK%2cVERSION%3dV4.0%22);k(DevLang-CSHARP)&rd=true)

موفق باشی

hamid.karimy
دوشنبه 13 آذر 1391, 17:19 عصر
برای حالت های مختلفی که می خوای هندل کنی ببین چه ارورهایی برمیگردونه
(innerException,errorNo,...)
بعد تو کش برای هرکدوم شرط بزار

try
{
}
catch (Exception ex)
{
if (ex.Message=="Your Exception Message")
{
//What Ever
}

}