Avatar ·

Pourquoi try-catch accélère l'exécution de mon code C# ?

Bonjour à tous ! Je suis un développeur C# débutant et j'ai rencontré une situation très étrange. J'ai une méthode qui effectue des opérations mathématiques sur un grand tableau de données. J'ai remarqué que si j'entoure la boucle principale d'un try-catch, le code s'exécute plus rapidement que sans. La différence est d'environ 15-20 % sur 10 millions d'itérations. Voici un exemple simplifié : ```csharp // Version lente (sans try-catch) public void ProcessWithoutTryCatch(int[] data) { for (int i = 0; i < data.Length; i++) { data[i] = data[i] * 2 + 1; } } // Version rapide (avec 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); } } ``` J'ai testé sur .NET 6 et .NET 8, le résultat se répète de manière stable. De plus, les exceptions ne sont jamais levées — le tableau ne dépasse jamais les limites.