Avatar ·

为什么 try-catch 会加速我的 C# 代码执行?

大家好!我是一名 C# 初学者,遇到了一个非常奇怪的情况。我有一个方法,对大型数据数组执行数学运算。我注意到,如果将主循环包裹在 try-catch 中,代码执行速度比没有它更快。在 1000 万次迭代中,差异约为 15-20%。 这是一个简化的例子: ```csharp // 慢速版本(无 try-catch) public void ProcessWithoutTryCatch(int[] data) { for (int i = 0; i < data.Length; i++) { data[i] = data[i] * 2 + 1; } } // 快速版本(有 try-catch) public void ProcessWithTryCatch(int[] data) { try { for (int i = 0; i < data.Length; i++) { data[i] = data[i] * 2 + 1; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } ``` 我在 .NET 6 和 .NET 8 上测试过,结果稳定重复。而且异常从未被抛出——数组保证不会越界。