Junior
Կա՞ C#-ում մի քանի catch բլոկներ՝ բացառությունների մշակման համար։
sobes.tech AI
Պատասխան AI-ից
Այո, կարող է լինել մի քանի catch բլոկ։ Սա թույլ է տալիս տարբեր կերպ մշակել տարբեր տեսակի արտահայտություններ։
Երբ տեղի է ունենում արտահայտություն, CLR-ը հերթականորեն ստուգում է catch բլոկները վերևից ներքև, սկսած առաջինից։ Առաջին catch բլոկը, որի արտահայտության տիպը համընկնում է արտահայտության առաջացած տիպին կամ նրա հիմք դասին, կատարվում է։
try
{
// Կոդ, որը կարող է արտահայտություն առաջացնել
}
catch (ArgumentNullException ex)
{
// ArgumentNullException արտահայտության մշակումը
}
catch (IndexOutOfRangeException ex)
{
// IndexOutOfRangeException արտահայտության մշակումը
}
catch (Exception ex)
{
// Բոլոր մյուս արտահայտությունների մշակումը (հիմք դասը Exception)
// Այս բլոկը սովորաբար տեղադրվում է վերջին
}
finally
{
// Կոդ, որը միշտ կիրականացվի, անկախ նրանից, արտահայտություն է եղել թե ոչ
}
Կարևոր է catch բլոկները դասավորել ավելի հատուկ տիպերի արտահայտություններից դեպի ավելի ընդհանուր (հիմք դասեր)։ catch (Exception ex) բլոկը պետք է լինի վերջինը, քանի որ այն բռնում է բոլոր արտահայտությունները։