Junior
C#-da istisnaları işləmək üçün bir neçə catch bloku ola bilərmi?
sobes.tech Süni İntellekt
AI-dan cavab
Bəli, bir neçə catch bloku ola bilər. Bu, müxtəlif növ istisnaları fərqli şəkildə işləməyə imkan verir.
İstisna baş verdikdə, CLR yuxarıdan aşağıya doğru catch bloklarını yoxlayır, ilkindən başlayaraq. İstisnanın tipi ilə uyğun gələn və ya onun əsas sinfi olan ilk catch bloku icra olunur.
try
{
// İstisna yarada biləcək kod
}
catch (ArgumentNullException ex)
{
// ArgumentNullException istisnasının işlənməsi
}
catch (IndexOutOfRangeException ex)
{
// IndexOutOfRangeException istisnasının işlənməsi
}
catch (Exception ex)
{
// Bütün digər istisnaların işlənməsi (əsas sinif Exception)
// Bu blok adətən sonunda yerləşdirilir
}
finally
{
// Hər zaman icra olunacaq kod, istisna olsa da, olmasa da
}
catch bloklarını daha spesifik istisna tiplərindən daha ümumi olanlara doğru yerləşdirmək vacibdir. catch (Exception ex) bloku sonunda olmalıdır, çünki o, bütün istisnaları tutar.