• Иллюстрированный самоучитель по C++ Builder

    Компоновка. Запуск программы. Ошибки времени выполнения.

    После возникновения исключения и щелчка на кнопке ОК в диалоговом окне Debugger Exception Notification (рис. 2.35) выполнение программы можно прервать или, несмотря на возникшую ошибку, продолжить. Чтобы прервать выполнение программы, надо в меню Run выбрать команду Program Reset, чтобы продолжить – команду Step Over.

    Обработку исключений берет на себя автоматически добавляемый в выполняемую программу код, который обеспечивает, в том числе, и вывод информационного сообщения. Вместе с тем C++ Builder дает возможность программе самой выполнить обработку исключения.

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

    try
    {
    // здесь инструкции, выполнение которых может вызвать исключение
    }
    catch (Тип &е)
    {
    // здесь инструкции обработки исключения
    }
    

    Где:

    • try – ключевое слово, обозначающее, что далее следуют инструкции, при выполнении которых возможно возникновение исключений, и что обработку этих исключений берет на себя программа;
    • catch – ключевое слово, обозначающее начало секции обработки исключения. Инструкции этой секции будут выполнены, если в программе возникнет исключение указанного типа.

    Основной характеристикой исключения является его тип. В табл. 2.12 перечислены наиболее часто возникающие исключения и указаны причины, которые могут привести к их возникновению.

    Таблица 2.12. Типичные исключения.

    Исключение Возникает
    EConvertError – ошибка преобразования При выполнении преобразования, если преобразуемая величина не может быть приведена к требуемому типу. Наиболее часто возникает при преобразовании строки символов в число
    EDivByZero – целочисленное деление на ноль При выполнении операции целочисленного деления, если делитель равен нулю
    EZeroDivide – деление на ноль При выполнении операции деления над дробными операндами, если делитель равен нулю
    EInOutError – ошибка ввода/вывода При выполнении файловых операций. Наиболее частой причиной является отсутствие требуемого файла или, в случае использования сменного диска, отсутствие диска в накопителе

    В программе вычисления силы тока исключения могут возникнуть при выполнении преобразования строк, введенных в поля редактирования, в числа и при вычислении величины тока. Исключение EConvertError возникнет, если пользователь неправильно введет числа в поля редактирования: например, разделит целую и дробную части точкой. Исключение EZeroDivide возникнет, если пользователь задаст величину сопротивления равной нулю.

    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.