Главная страница
Навигация по странице:

  • Зачем блок finally

  • Обработка исключений. Предотвращение и обработка исключений. Программирование


    Скачать 1.11 Mb.
    НазваниеПрограммирование
    АнкорОбработка исключений
    Дата12.12.2021
    Размер1.11 Mb.
    Формат файлаpptx
    Имя файлаПредотвращение и обработка исключений.pptx
    ТипИнструкция
    #300928

    Программирование

    Гринева О.В.

    • При разработке проекта программист должен предусмотреть все возможные варианты некорректных действий пользователя, которые могут привести к возникновению ошибок времени выполнения, и обеспечить способы защиты от них.
    • Примерами исключений может быть: - деление на ноль; - конвертация некорректных данных из одного типа в другой; - попытка открыть файл, которого не существует; - доступ к элементу вне рамок массива; - исчерпывание памяти программы; - другое

    Инструкция обработки исключения в общем виде:


    Try

    {

    // команды, выполняющиеся в обычном режиме

    }

    catch ([тип исключения] [имя])

    {

    // команды для выполнения в случае возникновения исключения

    }

    При этом, весь оставшийся код от момента выбрасывания исключения до конца блока try не будет выполнен. После выполнения блока catch, оператор try-catch завершает работу.

    Указывать имя исключения не обязательно.

    Если тип выброшенного исключения не будет соответствовать типу, указанному в catch – исключение не обработается, и программа завершит работу аварийно


    Пример обработки исключения некорректного формата данных:

    static void Main(string[] args) { string result = ""; Console.WriteLine("Введите число:"); try { int a = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число result = "Вы ввели число " + a; } catch (FormatException) { result = "Ошибка. Вы ввели не число"; } Console.WriteLine(result); Console.ReadLine();

    }

    Ниже приведены некоторые из часто встречаемых типов исключений.

    Exception – базовый тип всех исключений.

    Блок catch, в котором указан тип Exception будет «ловить» все исключения.

    FormatException – некорректный формат операнда или аргумента

    NullReferenceException - В экземпляре объекта не задана ссылка на объект, объект не создан

    IndexOutOfRangeException – индекс вне рамок коллекции

    FileNotFoundException – файл не найден.

    DivideByZeroException – деление на ноль

    Оператор try-catch также может содержать блок finally. Особенность блока finally в том, что код внутри этого блока выполнится в любом случае, в независимости от того, было ли исключение или нет. try { //блок1 } catch (Exception) { //обработка исключения } finally { //блок кода, который выполнится обязательно } Выполнение кода программы в блоке finally происходит в последнюю очередь. Сначала try затем finally или catch-finally (если было исключение). Обычно, он используется для освобождения ресурсов. Классическим примером использования блока finally является закрытие файла.

    Зачем блок finally?

    Finally гарантирует выполнение кода, несмотря ни на что.

    Даже если в блоках try или catch будет происходить выход из метода с помощью оператора return – finally выполнится. Операторы try-catch также могут быть вложенными. Внутри блока try либо catch может быть еще один try-catch.

    Д/З

    Есть массив целых чисел размером 10 элементов.

    С клавиатуры вводится два числа - порядковые номера элементов массива, которые необходимо суммировать.

    Например, если ввели 3 и 5 - суммируются 3-й и 5-й элементы. Нужно предусмотреть случаи, когда были введены не числа, и когда одно из чисел, или оба больше размера массива


    написать администратору сайта