Sobes.tech
Junior

Тартиби try-catch дар C# чист?

sobes.tech AI

Ҷавоб аз AI

Структура try-catch дар C# истифода мешавад барои идоракунии истисноҳо. Блоки try кодро дар бар мегирад, ки эҳтимолан метавонад истисноро ба вуҷуд орад. Агар истисно рух диҳад, иҷрои ба блоки catch мегузарад, ки дар он истисно гирифта ва идора карда мешавад.

try
{
    // Код, ки метавонад истисноро ба вуҷуд орад
    int result = 10 / int.Parse("0"); // Ҳамчун DivideByZeroException
}
catch (DivideByZeroException ex)
{
    // Идоракунии истиснои махсуси DivideByZeroException
    Console.WriteLine("Хатои тақсим кардан ба нул: " + ex.Message);
}
catch (FormatException ex)
{
    // Идоракунии истиснои махсуси FormatException
    Console.WriteLine("Хатои формати: " + ex.Message);
}
catch (Exception ex)
{
    // Идоракунии ҳар гуна истиснои дигар
    Console.WriteLine("Хатогии умумӣ: " + ex.Message);
}
finally
{
    // Ин блок ҳамеша иҷро мешавад, новобаста аз он, ки истисно рух дода бошад ё на.
    // Барои озод кардани захираҳо истифода мешавад.
    Console.WriteLine("Блокуи finally иҷро шуд.");
}
  • Блокуи try: Кодро дар бар мегирад, ки дар он метавонад истисно рух диҳад.
  • Блокуи catch: Истисноро мегирад. Мумкин аст, ки чандин блоки catch барои намудҳои гуногуни истисноҳо дошта бошанд. Блокуи catch (Exception ex) ҳамаи намудҳои истисноҳоро мегирад.
  • Блокуи finally: Ин як блоки интихобӣ аст, ки ҳамеша иҷро мешавад, новобаста аз он, ки истисно рехта ё на.

Истифодаи try-catch имкон медиҳад, ки хатоҳои нодида гирифташударо бо услуби оддӣ идора кардан, аз қатъ шудани барнома пешгирӣ кардан ва паёмҳои хатоии бештар иттилоотӣ ба корбар пешниҳод кардан.