C# dilinin istisna işleme özelliği, programınız çalışırken ortaya çıkan beklenmedik veya olağan dışı durumları yönetmenize yardımcı olur. İstisna işleme, başarısızlıkları yönetmek için belirli işlemleri denemek için deneme, yakalama ve son anahtar kelimeleri kullanır ve bu işlemlerin başarısız olma potansiyeli olsa da, bunu yapmanız gerektiğinden eminseniz ve sonrasında kaynakları temizlemek istiyorsanız bunu deneyebilirsiniz. Ortak Dil Çalışma Zamanı (CLR), . NET Framework veya herhangi bir üçüncü taraf kütüphane veya uygulama kodu istisnalar oluşturabilir. İstisnalar throw anahtar kelimesi kullanılarak oluşturulur. Birçok durumda, istisnalar doğrudan kodla çağrılan bir yöntemle değil, çağrı yığınının daha aşağısında başka bir yöntemle ortaya çıkabilir. Bu durumda, CLR yığını genişleterek o istisna türü için yakalama bloğu içeren bir yöntem olup olmadığını görür ve böyle bir yöntem bulursa, ilk bulunan yakalama bloğunu çalıştırır. Çağrı yığınında uygun bir yakalama bloğu bulunmazsa, süreç sonlandırılır ve kullanıcıya bir mesaj gösterilir. Bu örnekte, bir yöntem sıfıra bölündüğünü tespit etmek için kullanılır; Varsa, hata yakalanır. İstisna işlemesi yoksa, bu program sonlanacak ve "DivideByZeroException Not Handled" hatası üretecektir.- 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.");
- }
- }
- }
Kopya kodu
|