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 um comportamento muito estranho. Tenho um método que processa um array de números. Decidi verificar a performance usando Stopwatch e descobri que a versão com try-catch é mais rápida do que a sem ele! Aqui está o código simplificado:
```csharp
// Versão lenta (sem try-catch)
public static void ProcessWithoutTryCatch(int[] data)
{
for (int i = 0; i < data.Length; i++)
{
if (data[i] > 0 && data[i] < 100)
{
// Alguma lógica simples
int result = data[i] * 2;
}
}
}
// Versão rápida (com try-catch)
public static void ProcessWithTryCatch(int[] data)
{
for (int i = 0; i < data.Length; i++)
{
try
{
if (data[i] > 0 && data[i] < 100)
{
int result = data[i] * 2;
}
}
catch (Exception ex)
{
// Não fazemos nada
}
}
}
```
Eu executo