Обработка исключений
Обработка исключений
Исключение (exception) — это результат выполнения некорректного оператора, что привело к возникновению ошибки. В языке Object Pascal для обработки исключений предназначена специальная конструкция:
try
//Операторы, которые могут привести к возникновению исключения
except
//Операторы, выполняемые в случае возникновения исключения
end;
В случае возникновения исключения в блоке операторов, расположенных между ключевыми словами try и except, управление передается блоку операторов после слова except, где можно определить реакцию на возникшую ошибку.
В частности, в блоке except можно обрабатывать исключения в зависимости от их типа с помощью конструкции
except
on Тип_исключения1 do Блок_операторов1;
on Тип_исключения2 do Блок_операторов2;
…
on Тип_исключенияN do Блок_операторовN;
end;
Типу исключения соответствует имя класса, производного от класса Exception. В отличие от других классов Delphi, имена классов исключений начинаются к латинской буквы "E". Перечислим некоторые из этих классов:
• EZeroDivide — деление на ноль;
• EAccessViolation — ошибка доступа к памяти;
• ERangeError — выход значения за границы допустимого диапазона;
• EStackOverflow — переполнение стека памяти из-за слишком больших переменных или чрезмерно большого количество рекурсивных вызовов процедур (вызов процедуры самой себя);
• EConvertError — ошибка преобразования (например, строки в число);
• EDatabaseError — ошибка при работе с базой данных;
• EOutOfMemory — переполнение памяти;
• EFCreateError — ошибка создания файла;
• EFilerError — ошибка чтения/записи при работе с файлом;
• EFOpenError — ошибка открытия файла;
• EIniFileException — ошибка при работе с INI-файлом;
• EInOutError — ошибка ввода-вывода.
Если тип исключения точно неизвестен, то для его обработки можно воспользоваться следующей конструкцией:
except
on E: Exception do Блок_операторов;
end;
При этом в блоке операторов после ключевого слова do можно обращаться к свойству E.Message, которое содержит строку с описанием ошибки.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
ГЛАВА 4 Обработка исключений
ГЛАВА 4 Обработка исключений Основное внимание в данной главе сфокусировано на структурной обработке исключений (Structured Exception Handling, SEH), но наряду с этим обсуждены также обработчики управляющих сигналов консоли и векторная обработка исключений (Vectored Exception Handling, VEH).SEH
Пример: обработка ошибок как исключений
Пример: обработка ошибок как исключений В предыдущих примерах для обработки ошибок при выполнении системных вызовов и других ошибок используется функция ReportError. Эта функция прекращает выполнение процесса, если программист указал, что данная ошибка является
SEH и обработка исключений в C++
SEH и обработка исключений в C++ При обработке исключений в C++ используются ключевые слова catch и throw, а сам механизм исключений реализован с использованием SEH. Тем не менее, обработка исключений в C++ и SEH — это разные вещи. Их совместное применение требует внимательного
Векторная обработка исключений
Векторная обработка исключений Функции обработки исключений можно непосредственно связывать с исключениями, точно так же, как обработчики управляющих сигналов консоли можно связывать с управляющими событиями консоли. В этом случае, если возникает исключение, то
13.1.5. Обработка исключений
13.1.5. Обработка исключений Что произойдет, если в потоке возникнет исключение? Как выясняется, поведение можно сконфигурировать заранее.Существует флаг abort_on_exception, который работает как на уровне класса, так и на уровне экземпляра. Он реализован в виде метода доступа (то
Обработка исключений
Обработка исключений Исключение (exception) — это результат выполнения некорректного оператора, что привело к возникновению ошибки. В языке Object Pascal для обработки исключений предназначена специальная конструкция:try //Операторы, которые могут привести к возникновению
Обработка исключений
Обработка исключений Ввиду того, что теперь метод Accelerate() может генерировать исключение, вызывающая сторона должна быть готова обработать такое исключение. При вызове метода, способного генерировать исключение, вы должны использовать блок try/catch. Приняв исключение, вы
Обработка множеств исключений
Обработка множеств исключений В простейшем варианте блок try имеет единственный блок catch. Но на практике часто возникает ситуация, когда операторы в рамках блока try способны создавать множество возможных исключений. Например, представьте себе, что метод Accelerate()
11. Обработка исключений
11. Обработка исключений Обработка исключений – это механизм, позволяющий двум независимо разработанным программным компонентам взаимодействовать в аномальной ситуации, называемой исключением. В этой главе мы расскажем, как генерировать, или возбуждать, исключение в
Обработка исключений
Обработка исключений Код PSQL может перехватывать ошибки при их появлении и затем их обрабатывать в подпрограмме обработки исключений. Если исключение будет обработано в вашем коде- вы обеспечите исправление или обход ошибки и позволите продолжить выполнение, - то
Обработка исключений
Обработка исключений Ошибки в isql обрабатываются тем же образом, что и приложении DSQL. isql отображает сообщение об ошибке, содержащее переменную SQLCODE и текст сообщения из массива состояния Firebird, как показано на рис. 37.4. Рис. 37.4. Пример сообщения об ошибке в isqlОшибки SQL со
Продвинутая обработка исключений
Продвинутая обработка исключений Чрезвычайно простой механизм, разработанный до сих пор, удовлетворяет большинству потребностей обработки исключений. Но некоторые приложения могут требовать более тонкой настройки:[x]. Возможно, требуется определить природу последнего