Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft'a özgü
try-finally deyimi, uygulamaların bir kod bloğunun yürütülmesi kesildiğinde temizleme kodunun yürütülmesini garanti etmelerini sağlayan C dilinin Bir Microsoft uzantısıdır. Temizleme, belleği serbest bırakma, dosyaları kapatma ve dosya tanıtıcılarını serbest bırakma gibi görevlerden oluşur. deyimi try-finally , özellikle rutinden erken dönüşe neden olabilecek bir hata için denetim yapılan birkaç yere sahip yordamlar için yararlıdır.
try-finally-statement:
__trycompound-statement__finallycompound-statement
Yan tümceden __try sonraki bileşik deyim korunan bölümdür. Yan tümcesinden __finally sonraki bileşik deyim sonlandırma işleyicisidir. İşleyici, korunan bölümden çıkıldığında yürütülen bir eylem kümesini belirtir. Korunan bölümden bir özel durum (anormal sonlandırma) veya standart düşüş (normal sonlandırma) ile çıkılıp çıkılmayacağı önemli değildir.
Denetim, basit sıralı yürütme (fall through) ile bir __try deyime ulaşır. Denetim deyimine __try girdiğinde, ilişkili işleyicisi etkin hale gelir. Yürütme aşağıdaki gibi devam eder:
Korunan bölüm yürütülür.
Sonlandırma işleyicisi çağrılır.
Sonlandırma işleyicisi tamamlandığında, yürütme deyiminden
__finallysonra devam eder. Korunan bölümün sonu ne olursa olsun (örneğin,gotokorunan gövdeden bir deyim aracılığıyla veya birreturndeyim aracılığıyla), denetim akışı korunan bölümden çıkmadan önce sonlandırma işleyicisi yürütülür.
anahtar __leave sözcüğü bir try-finally deyim bloğu içinde geçerlidir. etkisi __leave bloğun sonuna atlamaktır try-finally . Sonlandırma işleyicisi hemen yürütülür. Bir deyimi aynı sonucu elde etmek için kullanılabilse de goto , deyimi goto yığın geri sarmaya neden olur.
__leave Deyimi, yığın geri sarmayı içermediğinden daha verimlidir.
try-finally Deyimini veya çalışma zamanı işlevini kullanarak deyimden longjmpreturn çıkmak anormal sonlandırma olarak kabul edilir. Bir ifadeye atlamak __try yasal değil, bir ifadeden atlamak yasaldır. Kalkış noktası ile varış noktası arasında etkin olan tüm __finally ifadeler çalıştırılmalıdır. Buna yerel rahatlama denir.
Bir deyimi yürütülürken try-finally bir işlem sonlandırılırsa sonlandırma işleyicisi çağrılmaz.
Uyarı
Yapılandırılmış özel durum işleme C ve C++ kaynak dosyalarıyla çalışır. Ancak, özellikle C++ için tasarlanmamıştır. Taşınabilir C++ programları için yapılandırılmış özel durum işleme yerine C++ özel durum işleme kullanılmalıdır. Ayrıca, C++ özel durum işleme mekanizması, herhangi bir türdeki özel durumları işleyebildiği için çok daha esnektir. Daha fazla bilgi için bkz. C++ Dil Başvurusu'ndaözel durum işleme.
Deyimintry-except nasıl çalıştığını görmek için deyiminin örneğine try-finally bakın.
END Microsoft'a özgü