Avatar ·

Por que try-catch acelera a execução do meu código em C#?

Olá a todos! Sou um desenvolvedor C# iniciante e me deparei com uma situação muito estranha. Tenho um método que realiza operações matemáticas em um grande array de dados. Percebi que, se envolver o loop principal em try-catch, o código executa mais rápido do que sem ele. A diferença é de cerca de 15-20% em 10 milhões de iterações. Aqui está um exemplo simplificado: ```csharp // Versão lenta (sem try-catch) public void ProcessWithoutTryCatch(int[] data) { for (int i = 0; i < data.Length; i++) { data[i] = data[i] * 2 + 1; } } // Versão rápida (com 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); } } ``` Testei no .NET 6 e .NET 8, e o resultado se repete consistentemente. Além disso, as exceções nunca são lançadas — o array garantidamente não sai