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) бояд дар охир бошад, зеро он ҳама истисноҳоро мегирад.