PDA

View Full Version : سوال: استفاده از goto در بدنه catch



sajadzare
شنبه 25 آبان 1392, 20:40 عصر
سلام

من یه حلقه دارم که اونو در بدنه try - catch گذاشتم تا اگه خطایی رخ داد برنامه هنگ نکنه و خطا رو نشون بده. حالا من میخوام هر خطایی توی عملیات بدنه حلقه رخ داد بره و حلقه رو مجددا از صفر شروع کنه البته این بار تعدادی که از i انجام شده رو از مقدار انتهایی حلقه کم کنه و بعد شروع کنه. من قبل از شروع حلقه نوشتم



loop:

for(i=0;i<j;j++)




حالا توی بدنه catch اومدم و نوشتم


goto loop;


اما ارور میده و میگه loop توی اسکوپ نیست.!
حتی من وقتی میخوام توی بدنه catch مقدار j رو تغییر بدم هم نمی شناسه

راهکار شما برای اینکه بتونم در صورت بروز خطا عملیات حلقه مجددا شروع بشه چیه . میدونم از continue برای این کار میشه بهره برد ولی در مورد خطاهای ناخواسته و پیش بینی نشده نمیشه شرط گذاشت که اگه این طور شد ادامه بده !!!

sajadzare
یک شنبه 26 آبان 1392, 15:36 عصر
خودم حلش کردم

دستور try-catch باید در بدنه حلقه for باشه تا continue توی بدنه catch قابل تشخیص باشه..



for(i=0;i<j;i++)
{
try

{

دستورات حلقه

}

catch

{

continue;
}

//پایان حلقه
}