-1
while (true) {
    try {
        //create ImportantObject
        LoopToGoTo:
        for (int i = 0; i < Limit; i++) {
            //method in here throws the exception
            //ImportantObject is used in here.
        }
    } catch(Exception e) {
        //report error
        continue LoopToGoTo;
    }
}

我想继续在 try catch 块内的循环。这可能吗?

编辑:对不起,我不清楚为什么我不能将 try catch 移到 for 循环内。(编辑片段)如果我把 try-catch 放在 for 循环中,里面的调用将无法访问 ImportObject.. 这就是我被卡住的地方。

EDIT2:好的,我解决了我的问题,尽管没有继续使用标签!我想我的问题的答案是一个简单的“不”。坏习惯可能到处都是,但我的作业要在两个小时内完成。我能说什么:D

//ImportantClass ImportantObject = null;
while (!ranOnce) {
    try {
        //create ImportantObject
        ranOnce = true;
    } catch(Exception e) {
        //report error
        continue;
    }
}
for (int i = 0; i < Limit; i++) {
    try {
        //method in here throws the exception
        //ImportantObject is used in here.
    } catch(Exception e) {
        //report error
        continue;
    }
}
4

3 回答 3

2

不,这是不可能的,因为您已经超出了 try 块的范围。

为什么不把 try catch 移到 for 循环中呢?

for (int i = 0; i < Limit; i++) {
    try {
        //method in here throws the exception
    } 
    catch(Exception e) {
    //report error
    }
}
于 2012-09-13T20:38:00.547 回答
1

你的意思是你想这样做吗?

        for (int i = 0; i < Limit; i++) {
          try {
            //method in here throws the exception
          } catch(Exception e) {
            //report error
          }
        }
于 2012-09-13T20:38:50.813 回答
0

我认为一个简单的continue;会产生相同的效果,你想要达到什么。

于 2012-09-13T20:39:02.137 回答