fork download
  1. program TestException;
  2. // Этот код можно вставить на любом сайте с онлайн-компилятором Pascal
  3.  
  4. {$mode objfpc}{$H+} // Директива для Free Pascal Compiler
  5.  
  6. uses
  7. SysUtils; // Подключаем модуль для работы с исключениями (Exception)
  8.  
  9. var
  10. a, b, c: Integer;
  11. begin
  12. a := 10;
  13. b := 0; // Здесь будет ошибка (деление на ноль)
  14.  
  15. Writeln('Пробуем выполнить опасный код...');
  16.  
  17. try
  18. // Блок, где может произойти ошибка
  19. Writeln('Делим ', a, ' на ', b);
  20.  
  21. // Проверяем, чтобы не было деления на ноль (наша "защита")
  22. if b = 0 then
  23. raise Exception.Create('Ошибка: Деление на ноль!'); // Искусственно вызываем исключение
  24.  
  25. c := a div b; // Эта строка не выполнится, если b=0
  26. Writeln('Результат: ', c);
  27.  
  28. except
  29. on E: Exception do // Ловим любую ошибку
  30. begin
  31. Writeln('!!! Поймали исключение !!!');
  32. Writeln('Текст ошибки: ', E.Message);
  33. Writeln('Класс ошибки: ', E.ClassName);
  34. end;
  35. end;
  36.  
  37. Writeln('Программа завершена (не упала, благодаря обработке).');
  38.  
  39. // Чтобы консоль сразу не закрывалась на некоторых сайтах
  40. Readln;
  41. end.
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
Пробуем выполнить опасный код...
Делим 10 на 0
!!! Поймали исключение !!!
Текст ошибки: Ошибка: Деление на ноль!
Класс ошибки: Exception
Программа завершена (не упала, благодаря обработке).