لماذا try-catch يسرع تنفيذ الكود الخاص بي في C#؟
مرحبًا بالجميع! أنا مطور C# مبتدئ وواجهت موقفًا غريبًا جدًا. لدي طريقة تقوم بعمليات رياضية على مصفوفة كبيرة من البيانات. لاحظت أنه إذا قمت بتغليف الحلقة الرئيسية في try-catch، فإن الكود ينفذ بشكل أسرع من دونه. الفرق حوالي 15-20% على 10 ملايين تكرار.
إليك مثال مبسط:
```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، والنتيجة تتكرر باستمرار. مع العلم أن الاستثناءات لا تُلقى أبدًا — المصفوفة مضمونة ألا تخرج عن الحدود.