Junior
оператори throw дар C# чист?
sobes.tech AI
Ҷавоб аз AI
Оператор throw истифода мешавад барои баровардани хатогӣ ба таври равшан. Он имкон медиҳад, ки иҷрои муқаррарии барнома қатъ шавад ва идоракунӣ ба блоки коркарди хатогиҳо гузарад.
// Мисоли истифодаи оператори throw
try
{
int[] numbers = { 1, 2, 3 };
int index = 5;
// Баровардани хатогии IndexOutOfRangeException дастӣ
if (index >= numbers.Length)
{
throw new IndexOutOfRangeException("Индекси дар ҳудуди массив нест.");
}
Console.WriteLine(numbers[index]);
}
catch (IndexOutOfRangeException ex)
{
// Ҳал кардани хатогӣ
Console.WriteLine($"Хатогӣ: {ex.Message}");
}
Оператор throw метавонад дар ду шакл истифода шавад:
-
throw expression;: Як хатогии навро бароварда, киexpressionнамунаи синфест, ки азSystem.Exceptionмерос гирифтааст.throw new ArgumentException("Аргументи нодуруст."); -
throw;: Ҳолати ҳозираи хатогиро дар блокиcatchтакрор мекунад. Ин тамоми маълумоти дар бораи стеки занҷирро нигоҳ медорад.try { // Коде, ки метавонад хатогӣ барорад } catch (FileNotFoundException ex) { // Иловаи коркард ё сабт Console.WriteLine($"Файл ёфт нашуд: {ex.FileName}"); // Такрори баровардани хатогӣ барои коркард дар сатҳи боло throw; }
Истифодаи throw муҳим аст барои:
- нишон додани хатоҳо ё ҳолатҳои номувофиқ дар барнома.
- Эҷоди хатогиҳои махсус барои хатоҳои мушаххас.
- Тасдиқи маълумот дар бораи хато ба коди даъваткунанда барои коркарди дуруст.