Aracılığıyla paylaş


Özel durumlar ve özel durum işleme (C# Programlama Kılavuzu)

C# Dil özel durum işleme özellikleri Yardım bir program çalışırken ortaya çıkan herhangi bir beklenmeyen veya olağanüstü durumlarda ile ilgilidir. Özel durum işleme kullanan try, catch, ve finally başarılı olmayabilir eylemler deneyin, bunu yapmak için ve daha sonra kaynakları temizlemek için makul karar verdiğinizde hataları işlemek için anahtar sözcükler. Özel durumlar, ortak dil çalışma zamanı tarafından (clr) .NET Framework veya herhangi bir üçüncü taraf kitaplıkları veya uygulama kodu tarafından oluşturulabilir. Özel durumları kullanarak oluşturulur throw anahtar sözcük.

Çoğu durumda, özel bir durum değil kodunuzu doğrudan adında bir yöntem tarafından oluşturulur, ancak başka bir yöntem kullanarak daha fazla çağrı yığını içinde aşağı. Bu durumda, clr yığını yöntemi ile arayan bırakma bir catch engellemek için belirli bir özel durum türü ve ilk yürütülecektir böyle catch , Eğer bloğu bulur. Hayır uygun bulursa, catch çağrı yığını içinde herhangi bir yere engellemek, işlemi sonlandırmak ve kullanıcıya bir ileti görüntüler.

Bu örnekte, bir yöntem sıfıra bölme için sınar ve hata yakalar. Özel durum işleme olmadan ile bu programı sonlandırmak bir DivideByZeroException işlenmemiş hata.

class ExceptionTest
{
    static double SafeDivision(double x, double y)
    {
        if (y == 0)
            throw new System.DivideByZeroException();
        return x / y;
    }
    static void Main()
    {
        // Input for test purposes. Change the values to see
        // exception handling behavior.
        double a = 98, b = 0;
        double result = 0;

        try
        {
            result = SafeDivision(a, b);
            Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
        }
        catch (DivideByZeroException e)
        {
            Console.WriteLine("Attempted divide by zero.");
        }
    }
}

Özel durumlar genel bakış

Özel durumlar aşağıdaki özelliklere sahiptir:

  • Bunun istisnaları sonuçta tüm türetilen türler System.Exception.

  • Kullanım bir try özel durumlar oluabilir deyimlerinin etrafında blok.

  • Bir özel durum oluşur sonra try çağrı yığını içinde herhangi bir yerde mevcut olan ilk ilişkilendirilmiş bir özel durum işleyicisi denetimini atlar akışını engellemek. C# ' ta catch anahtar sözcüğünü bir özel durum işleyicisi tanımlamak için kullanılır.

  • Belirli bir özel durum için hiçbir özel durum işleyicisi varsa, program yürütülürken bir hata iletisiyle durur.

  • Bunu işlemek ve uygulamanın bilinen bir durumda bırakın sürece bir özel durum catch değil. Catch, System.Exception, kullanarak yeniden oluşturma throw sonunda, anahtar sözcük catch blok.

  • Varsa bir catch bloğunun tanımladığı bir özel durum değişkeni, oluşan özel durum türü hakkında daha fazla bilgi edinmek için kullanın.

  • Özel durumlar açıkça oluşturulabilir tarafından bir program kullanarak throw anahtar sözcük.

  • Özel nesneler çağrı yığını ve metin açıklamasını hata durumu gibi hata hakkında ayrıntılı bilgi içerir.

  • Kod bir finally bile, bir özel durum bloğu yürütüldü. Kullanım bir finally örneğin akışları ya da içinde açılan dosyaları kapatmak kaynakları serbest bırakmak için blok try blok.

  • .net Framework yönetilen özel durum işleme mekanizmasını Win32 yapılandırılmış özel durum uygulanır. Daha fazla bilgi için bkz: Yapılandırılmış özel durum işleme (C++) ve a Crash sahasında derinliklerinde, Win32 yapılandırılmış özel durum işleme.

İlgili Bölümler

Özel durumlar ve özel durum işleme hakkında daha fazla bilgi için aşağıdaki konulara bakın:

C# dil belirtimi

Daha fazla bilgi için bkz: C# dil belirtiminin. Dil belirtimi, C# sözdizimi ve kullanımı için nihai kaynaktır.

Ayrıca bkz.

Başvuru

C# anahtar sözcükler

throw (C# Reference)

try-catch (C# Reference)

try-finally (C# Reference)

try-catch-finally (C# Reference)

SystemException

Kavramlar

C# Programlama Kılavuzu

Özel durum hiyerarşisi

Diğer Kaynaklar

İşleme ve özel durumlar yaratmak

Güvenilir .NET kod yazma

döküm için özel durum