Try/catch kullanarak özel durumu işleme

Try-catch bloğunun amacı, çalışan kod tarafından oluşturulan bir özel durumu yakalamak ve işlemektir. Bazı özel durumlar bir catch blokta işlenebilir ve sorun özel durum yeniden oluşturulmadan çözülür; ancak, daha sık yapabileceğiniz tek şey uygun özel durumun oluştuğundan emin olmaktır.

Örnek

Bu örnekte en IndexOutOfRangeException uygun özel durum değildir: ArgumentOutOfRangeException hatanın nedeni index çağıran tarafından geçirilen bağımsız değişken olduğundan yöntem için daha mantıklıdır.

static int GetInt(int[] array, int index)
{
    try
    {
        return array[index];
    }
    catch (IndexOutOfRangeException e)  // CS0168
    {
        Console.WriteLine(e.Message);
        // Set IndexOutOfRangeException to the new exception's InnerException.
        throw new ArgumentOutOfRangeException("index parameter is out of range.", e);
    }
}

Açıklamalar

Özel duruma neden olan kod bloğun try içine alınır. catch Bir deyimi, oluşursa işlemek IndexOutOfRangeExceptioniçin hemen arkasına eklenir. catch Blok, öğesini işler IndexOutOfRangeException ve yerine daha uygun ArgumentOutOfRangeException olanını oluşturur. Çağırana mümkün olduğunca çok bilgi sağlamak için, özgün özel durumu yeni özel durum olarak belirtmeyi InnerException göz önünde bulundurun. InnerException Özelliği salt okunur olduğundan, bunu yeni özel durumun oluşturucusunda atamanız gerekir.