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 IndexOutOfRangeException
iç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.