Teoride, bir istisna olmadıkça bir try / catch bloğunun kod davranışı üzerinde hiçbir etkisi olmayacaktır. Bununla birlikte, bir dene / yakala bloğunun varlığının büyük bir etkiye sahip olabileceği bazı nadir durumlar ve etkinin farkedilebildiği nadir ama çok zor olan bazı durumlar vardır. Bunun nedeni verilen kodun şudur:
Action q;
double thing1()
{ double total; for (int i=0; i<1000000; i++) total+=1.0/i; return total;}
double thing2()
{ q=null; return 1.0;}
...
x=thing1(); // statement1
x=thing2(x); // statement2
doSomething(x); // statement3
derleyici, deyim2'nin deyim3'ten önce çalışacağının garanti edilmesine dayanarak bildirimi1 optimize edebilir. Derleyici, thing1'in hiçbir yan etkisi olmadığını fark ederse ve thing2 aslında x kullanmazsa, thing1'i güvenli bir şekilde atlayabilir. Eğer [bu durumda olduğu gibi] thing1 pahalıysa, bu büyük bir optimizasyon olabilir, ancak thing1'in pahalı olduğu durumlar da derleyicinin optimize etme olasılığı en düşük olanlardır. Kodun değiştirildiğini varsayalım:
x=thing1(); // statement1
try
{ x=thing2(x); } // statement2
catch { q(); }
doSomething(x); // statement3
Şimdi, deyim3 yürütülmeden deyim3'ün çalışabileceği bir olaylar dizisi vardır. Koddaki hiçbir şey thing2
bir istisna atamasa bile, başka bir iş parçacığının , temizlenmiş ve ayarlanmış bir Interlocked.CompareExchange
bildirimi kullanmak ve ardından bir deyim değerini yazmadan önce gerçekleştirmesi mümkün olabilir . Daha sonra yürütülür [temsilci ile icra statement3 devam sağlayan]. Böyle bir olay dizisi elbette istisnai olarak imkansız olacaktır, ancak böyle bir olası olay meydana geldiğinde bile spesifikasyona göre çalışan kod üretmek için bir derleyici gerekmektedir.q
Thread.ResetAbort
Thread.Abort()
x
catch
Thread.ResetAbort()
q
Genel olarak, derleyicinin, basit kod parçalarını bırakma fırsatlarını karmaşık olanlardan daha çok fark etmesi daha olasıdır ve bu nedenle, bir istisna asla atılmazsa, bir deneme / yakalamanın performansı etkileyebileceği nadirdir. Yine de, bir dene / yakala bloğunun varlığının, denemeye / yakalamaya yönelik olarak kodun daha hızlı çalışmasına izin verebilecek optimizasyonları engelleyebileceği bazı durumlar vardır.