Исключительная или особая ситуация представляет собой сигнал о произошедшей в приложении ошибке. В Delphi исключительная ситуация является объектом, содержащим информацию, идентифицирующую ошибки и место их возникновения.
Исключительная ситуация генерируется (возбуждается) в двух случаях:
- ошибка произошла в библиотеке времени выполнения, в библиотеке визуальных компонент или в самой ОС;
- возбуждение исключительной ситуации самим кодом приложения.
После того как исключительная ситуация была возбуждена (появляется объект исключительной ситуации), она остается в памяти до тех пор, пока не будет обработана или приложение не завершит свою работу.
Исключительная ситуация облегчает написание приложения, устойчивого к ошибкам.
Конструкция для обработки исключительной ситуации.
- Try <защищ. код, т.е. код, в котором может произойти ошибка>
Finally <код завершения>
End.
- Try
Except <блок обработки исключительной ситуации>
End.
Блок Finally выполняется в любом случае, произошла в защищ. коде ошибка или нет.
Блок Except будет выполнен только, если в защищ. коде будет ошибка. Внутри блока Except создаются обработчики ошибочных ситуации для класса исключительных ситуаций.
On <класс исключительной ситуации> Do <обработка>
Классы исключительных ситуаций.
- Exception — базовый класс исключительных ситуаций.
- EMathError (класс – предок исключений при операциях с плавающей точкой):
– EInvalidOp (происходит при передаче математическому сопроцессору ошибочной конструкции);
– EOverFlow (возникает как результат переполнения информации с плавающей точкой при больших значениях);
– EUnderFlow (возникает как результат переполнения информации с плавающей точкой при маленьких значениях);