Avatar ·

¿Por qué try-catch acelera la ejecución de mi código en C#?

¡Hola a todos! Soy un desarrollador principiante de C# y me encontré con una situación muy extraña. Tengo un método que realiza operaciones matemáticas sobre un gran array de datos. Noté que si envuelvo el bucle principal en try-catch, el código se ejecuta más rápido que sin él. La diferencia es de aproximadamente 15-20% en 10 millones de iteraciones. Aquí hay un ejemplo simplificado: ```csharp // Variante lenta (sin try-catch) public void ProcessWithoutTryCatch(int[] data) { for (int i = 0; i < data.Length; i++) { data[i] = data[i] * 2 + 1; } } // Variante rápida (con 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); } } ``` Probé en .NET 6 y .NET 8, y el resultado se repite consistentemente. Además, nunca se lanzan excepciones — el array garantizadamente no se sale