foreach (Widget item in items)
{
try
{
//do something...
}
catch { }
}
foreach (Widget item in items)
{
try
{
//do something...
}
catch { continue; }
}
6
A
回答
8
在這種情況下,什麼也沒有,因爲try是循環複合語句的最後一個語句。 continue
將始終轉到下一次迭代,或者如果條件不再成立,則結束循環。
20
catch { continue; }
將導致代碼在新的迭代上啓動,跳過循環內的catch
塊之後的任何代碼。
3
編譯器會忽略它。這是從反射器。
public static void Main(string[] arguments)
{
foreach (int item in new int[] { 1, 2, 3 })
{
try
{
}
catch
{
}
}
foreach (int item in new int[] { 1, 2, 3 })
{
try
{
}
catch
{
}
}
}
9
其他答案告訴你在給定的代碼片段中會發生什麼。使用catch子句作爲循環中的最終代碼,沒有功能差異。如果你有catch子句後面的代碼,那麼沒有「continue」的版本將執行該代碼。 continue
是break
的stepbrother,它將循環體的其餘部分短路。與continue
,它跳到下一個迭代,而break
完全退出循環。無論如何,爲自己展示你的兩種行爲。
for (int i = 0; i < 10; i++)
{
try
{
throw new Exception();
}
catch
{
}
Console.WriteLine("I'm after the exception");
}
for (int i = 0; i < 10; i++)
{
try
{
throw new Exception();
}
catch
{
continue;
}
Console.WriteLine("this code here is never called");
}
0
如果您的樣本是逐字記錄的,那麼我會說「沒有區別」!
但是,如果您在發現後執行語句,那麼它就完全不同了!
catch { continue; }
將跳過catch塊之後的任何東西!
catch{}
仍然會執行catch塊後的語句!
相關問題
- 1. erlang,'catch 1 = 0'和'(catch 1 = 0)'有什麼區別?
- 2. catch(Exception $ ex)和catch(\ Exception $ ex)之間有什麼區別?
- 3. 在SQL Server中使用TRY ... CATCH和@@ ERROR有什麼區別?
- 4. 訂閱中的onError和catch操作符有什麼區別?
- 5. jQuery 3.2.1中的.catch和.fail有什麼區別?
- 6. try-catch和throw在java中的區別
- 7. TRY .... CATCH和TRY之間有什麼區別.....最後?
- 8. Python中的for循環中的`continue`和`pass`有區別嗎?
- 9. Try-Catch內循環
- 10. 在catch塊中使用continue語句
- 11. 循環和電路有什麼區別
- 12. 循環和迭代有什麼區別?
- 13. Foreach try catch
- 14. 爲什麼在for循環中「++ i」和「i ++」有什麼區別?
- 15. 什麼時候在try/catch塊中檢查catch參數c#
- 16. 在此代碼中,Continue和GoTo之間有什麼區別嗎?
- 17. Perl中'for'和'foreach'有什麼區別?
- 18. 使用ItemsSource和foreach循環在ListView中分配數據有什麼區別?
- 19. 您認爲在catch中嵌套try/catch語句有什麼用?
- 20. 做循環試try catch
- 21. Try/Catch干擾while循環
- 22. 下面的try-catch語句有什麼區別?
- 23. while循環忽略try-catch
- 24. 在while循環中執行try/catch
- 25. catch:和subscribeError之間的區別:
- 26. Ruby:for循環和每個循環之間有什麼區別?
- 27. 無限循環和循環之間有什麼區別?
- 28. for循環在C++中,這兩種風格有什麼區別?
- 29. 在while循環中使用Try/Catch
- 30. 在For循環中使用Try/Catch
這可能是由編譯器完成的優化。上面的示例代碼非常具體。如果在catch塊之後(在第二個foreach循環中)有語句,那麼你應該看到繼續。所以你不能說,總是繼續被忽略。 – SysAdmin 2010-06-10 19:06:58
@SysAdmin - 我很好奇你爲什麼發表了這個評論,當我的回答沒有提到'繼續'將永遠被忽略。 – ChaosPandion 2010-06-11 04:11:28