Блок try-catch- предназначен для перехвата и обработки исключений, происходящих в исполняемом коде. Некоторые исключения могут обрабатываться в блоке catch, и проблема решается без повторного вызова исключения. Но в большинстве случаев на этом этапе можно только проверить, что вызывается подходящее исключение.
Пример
В этом примере IndexOutOfRangeException не является наиболее подходящим исключением. Для данного метода больше подходит исключение ArgumentOutOfRangeException, так как ошибка вызывается аргументом index, который передает вызывающая функция.
C#
staticintGetInt(int[] array, int index)
{
try
{
return array[index];
}
catch (IndexOutOfRangeException e) // CS0168
{
Console.WriteLine(e.Message);
// Set IndexOutOfRangeException to the new exception's InnerException.thrownew ArgumentOutOfRangeException("index parameter is out of range.", e);
}
}
Комментарии
Код, вызывающий исключение, находится в блоке try. Оператор catch добавляется сразу после его обработки IndexOutOfRangeException, если она возникает. Блок catch обрабатывает IndexOutOfRangeException и создает более подходящий ArgumentOutOfRangeException объект. Чтобы вызывающий объект получил максимально подробную информацию, рекомендуется указать исходное исключение в качестве значения InnerException нового исключения. Так как свойство InnerException доступно только для чтения, его значение необходимо присваивать только в конструкторе нового исключения.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
В этом модуле рассматривается использование исключений и процесса обработки исключений в консольных приложениях C#. Практические действия обеспечивают реализацию шаблонов обработки исключений для различных сценариев программирования.
Сведения о выполнении кода очистки с использованием оператора finally. Операторы finally гарантируют, что все необходимые очистки объектов происходят немедленно.
Узнайте, как использовать сопоставление шаблонов для безопасного приведения переменных в другой тип. Вы можете использовать сопоставление шаблонов, а также операторы as и is для безопасного преобразования типов.
Узнайте об исключениях и обработке исключений. Эти функции C# помогают справиться с непредвиденными или исключительными ситуациями, которые происходят при выполнении программы.
Для определения типов объектов в C# используется определение класса или структуры. В объектно-ориентированном языке, таком как C#, программа состоит из динамически взаимодействующих объектов.