Aracılığıyla paylaş


try-deyimi (c) son

Microsoft özel

try-finally Microsoft uzantısı kod bloğunu yürütülmesini kesintiye uğradığında temizleme kod yürütülmesini garanti uygulamaları sağlayan c diline deyimidir.Temizleme bellek ayırmayı kaldırma dosyaları kapatma ve dosya tanıtıcısı serbest bırakma gibi görevler içerir.try-finally Deyimi burada çek yapılan neden olabilecek hata için erken birkaç yer vardır yordamları yordamından dönmek için özellikle yararlıdır.

  • try-finally-ifadesi:
    __try bileşik deyim

    __finally bileşik deyim

Sonra bileşik deyim __try yan tümcesinin guarded bölüm.Sonra bileşik deyim __finally yan tümcesinin sonlandırma işleyicisi.İşleyici guarded bölüm çıkıldığı zaman guarded bölümünde standart Sonbahar (normal sonlandırma) üzerinden veya bir özel durum (olağan dışı sona erdirme) tarafından çıkıldı mı yürütme eylemler kümesini belirtir.

Kontrol indiğinde bir __try basit sırasal çalıştırılmasına (Sonbahar üzerinden) beyannamenin.Denetim girdiğinde __try deyimi, onun ilişkili işleyicisi etkin olur.Yürütme gibi çalışır:

  1. Guarded bölümü çalıştırılır.

  2. Sonlandırma işleyicisi çağrılır.

  3. Sonlandırma işleyicisi tamamlandığında sonra yürütme devam __finally ifadesi.Olası bağımsız olarak nasıl bölüm sona erer (aracılığıyla Örneğin, bir goto deyimi guarded gövde veya aracılığıyla bir return deyimi), akış denetiminin guarded bölümüne gitmeden önce sonlandırma işleyicisi yürütülür.

__leave Anahtar sözcük içinde geçerli bir try-finally deyimi bloğu.Etkisini __leave sonuna atlamak için try-finally blok.Sonlandırma işleyicisinin hemen yürütülür.Ancak bir goto deyimi, aynı sonucu başarmak için kullanılabilir bir goto deyimi neden olan yığın unwinding.__leave Deyimi yığın unwinding katılmadığı için daha verimli.

Çıkma bir try-finally deyimini kullanarak bir return deyimi veya longjmp çalýþma zamaný iþlevi olağan dışı sona ermesi olarak kabul edilir.İçine atlamak için geçersiz bir __try deyimi, ancak yasal bir yöneticiyi atlamak için.Tüm __finally kalkış noktası ile hedef arasında etkin deyimleri çalıştırmak.Bu bir "yerel açılımı." olarak adlandırılır

Bir işlem yürütülürken da öldürülüyor, sonlandırma işleyicisi çağrılmaz bir try-finally ifadesi.

[!NOT]

Yapılandırılmış özel durum işleme c ve C++ kaynak dosyaları ile çalışır.Ancak, özellikle C++ için tasarlanmamıştır.C++ özel durum işleme kullanarak, kodunuzun daha taşınabilir olduğunu emin olabilirsiniz.Ayrıca, C++ özel durum işleme mekanizmasını çok daha esnek özel durumlar her türlü işleyebilir olmamasıdır.

[!NOT]

C++ programları için C++ özel durum işleme yapılandırılmış özel durum işleme yerine kullanılmalıdır.Daha fazla bilgi için bkz: Özel durum işleme , C++ dil başvurusu.

Örnek için bkz: deneyin-ifadesi hariç görmek için nasıl try-finally deyimi çalışır.

SON Microsoft özel

Ayrıca bkz.

Başvuru

try finally ifadesi