PDA

View Full Version : یک مساله در try/catch



web4ir
یک شنبه 18 شهریور 1386, 13:36 عصر
سلام
همونطور که می دونید هنگامیکه یک استثناء داخل یک بلاک try اتفاق می افتده و بعدش برنامه وارد بلاک catch میشه مجددا وارد بلاک try نمیشه و ادامه برنامه از خط بعد از بلاک catch پیگیری میشه ، آیا راهی هست که بعد از اتمام کار در بلاک catch مجددا به بلاک try برگردیم و ادامه خطها اجرا بشن؟

once4ever
یک شنبه 18 شهریور 1386, 14:19 عصر
وقتی یک خطایی در بلاک ترای اتفاق میافته طبیعتا ادامه خطها اشتباه هست و کتچ اجرا میشه
اما شما میتونید تو final هم کد بنویسید.
ترای برای کنترل یک شرط نیست بلکه برای جلوگیری از فالت شدن کامل سیستم بکار میره
بیشتر به کدهاتون دقت کنید

rasoul_ras
یک شنبه 18 شهریور 1386, 14:26 عصر
Test:
try
{

throw new Exception("sadas");

}
catch
{
goto Test;
}
این جوایتون ولی این کد تا ابد تکرار می شه مگر اینکه مشکل رو قبل از ترای حل کنید
در ضمن عزیزم شما چرا کچ می کنی که بعدش دوباره بخوای برگردی؟؟؟؟؟؟؟؟؟؟؟؟؟؟

gomnam
یک شنبه 18 شهریور 1386, 14:52 عصر
Test:
try
{

throw new Exception("sadas");

}
catch
{
goto Test;
}
این جوایتون ولی این کد تا ابد تکرار می شه مگر اینکه مشکل رو قبل از ترای حل کنید
در ضمن عزیزم شما چرا کچ می کنی که بعدش دوباره بخوای برگردی؟؟؟؟؟؟؟؟؟؟؟؟؟؟

استفاده از goto حتی توی زبانهای structured هم منسوخ و طرد شده
اونقت شما اونو توی زیان های شی گرا اون هم زبانی مثل C# که شی گرای محض هست بکار میبرین؟؟؟؟؟

gomnam
یک شنبه 18 شهریور 1386, 14:57 عصر
با نظر once4ever موافقم
حتی به نظر من اگر هم بشه این کار را کرد نباید ازش استفاده بشه
تصور کنید که نتیجه خطی که exception رخ داده قراره توی خط های بعد از اون استفاده بشه
اونقت اون کد اجرا نشده (کدی که exception ایجاد کرده) و نتیجتا برنامتون درست کار نمیکنه و جوابی که میخواین را نمیده
البته بلوک finally هم به نظر من برای این منظور نباید استفاده بشه
بیشتر برای مواقعی مثل بستن کانکشن و اینجور چیزا باید ازش استفاده بشه

rasoul_ras
یک شنبه 18 شهریور 1386, 15:19 عصر
من صد در صد حرف شما رو تائید می کنم فقط خواستم ب ایشان بفمانم که این کار اشتباه است