PDA

View Full Version : بستن فرم در داخل یک Exception



bpzone
سه شنبه 13 شهریور 1386, 23:44 عصر
سلام به همگی



try
{
objConnection.Open();
}
catch (SqlException error)
{
MessageBox.Show("اشکال در برقراری ارتباط با پایگاه داده", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Close();
}


من میخوام وقتی توی اتصال به پایگاه داده اشکالی به وجود اومد ، یک پیغام خطا نمایش داده شود و سپس فرم مورد نظر بسته بشه ....
اما دستور ()this.close اجرا نمیشه و ادامه دستورات اجرا میشه !!!!

چیکار باید انجام بدم که بتونم فرم رو ببندم ؟!؟!؟

mohsen_csharp
چهارشنبه 14 شهریور 1386, 01:54 صبح
من رو کد زیر امتحان کردم کار کرد.



try
{
int x = 3 / int.Parse("0");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
this.Close();
}


آیا پس از اجرای کد ، MessageBox نشون داده میشه؟

BeyondMicrosoft
چهارشنبه 14 شهریور 1386, 08:04 صبح
با سلام
اگر می خواهید دستورات بعد از this.Close اجرا نشه بعد از این دستور دستور return را استفاده نمایید به شکل زیر :


try
{
objConnection.Open();
}
catch (SqlException error)
{
MessageBox.Show("اشکال در برقراری ارتباط با پایگاه داده", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Close();
return;
}

bpzone
چهارشنبه 14 شهریور 1386, 09:06 صبح
با سلام
اگر می خواهید دستورات بعد از this.Close اجرا نشه بعد از این دستور دستور return را استفاده نمایید به شکل زیر :


try
{
objConnection.Open();
}
catch (SqlException error)
{
MessageBox.Show("اشکال در برقراری ارتباط با پایگاه داده", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Close();
return;
}



وقتی که اجرای دستورات به ()this.close برسه ، دیگه هیچ دستوری بعدش نباید اجرا بشه ...
با اجرای دستور return فقط کتترل در تابع مربوطه خارج میشه و نه از فرم و استفاده از این دستور مشکل اصلی رو بر طرف نمی کنه :افسرده:

BeyondMicrosoft
چهارشنبه 14 شهریور 1386, 09:26 صبح
با سلام


اما دستور ()this.close اجرا نمیشه و ادامه دستورات اجرا میشه !!!!

وقتی this.Close استفاده می کنید فقط فرم بسته میشه ولی ادامه دستورات در متد مروطه بعد از این دستور اجرا خواهند شد. پس من بر اساس کفته شما که گفتید " و ادامه دستورات اجرا میشه " پستی دادم تا با استفاده از return ادامه دستورات اجرا نشه. حال یا من مشکل اصلی را درست متوجه نشدم(اگر اینجوریه من عذر می خواهم لطفاً دقیق تر بیان نمایید.) یا اینکه شما متوجه عرایض بنده نشدید.

sm_ezadpanah
چهارشنبه 14 شهریور 1386, 12:26 عصر
با سلام جای پیام و close رو عوض کنید فکر می کنم مشکلتون حل میشه