program TestException;
// Этот код можно вставить на любом сайте с онлайн-компилятором Pascal
{$mode objfpc}{$H+} // Директива для Free Pascal Compiler
uses
SysUtils; // Подключаем модуль для работы с исключениями (Exception)
var
a, b, c: Integer ;
begin
a : = 10 ;
b : = 0 ; // Здесь будет ошибка (деление на ноль)
Writeln ( 'Пробуем выполнить опасный код...' ) ;
try
// Блок, где может произойти ошибка
Writeln ( 'Делим ' , a, ' на ' , b) ;
// Проверяем, чтобы не было деления на ноль (наша "защита")
if b = 0 then
raise Exception. Create ( 'Ошибка: Деление на ноль!' ) ; // Искусственно вызываем исключение
c : = a div b; // Эта строка не выполнится, если b=0
Writeln ( 'Результат: ' , c) ;
except
on E: Exception do // Ловим любую ошибку
begin
Writeln ( '!!! Поймали исключение !!!' ) ;
Writeln ( 'Текст ошибки: ' , E. Message ) ;
Writeln ( 'Класс ошибки: ' , E. ClassName ) ;
end ;
end ;
Writeln ( 'Программа завершена (не упала, благодаря обработке).' ) ;
// Чтобы консоль сразу не закрывалась на некоторых сайтах
Readln ;
end .
cHJvZ3JhbSBUZXN0RXhjZXB0aW9uOwovLyDQrdGC0L7RgiDQutC+0LQg0LzQvtC20L3QviDQstGB0YLQsNCy0LjRgtGMINC90LAg0LvRjtCx0L7QvCDRgdCw0LnRgtC1INGBINC+0L3Qu9Cw0LnQvS3QutC+0LzQv9C40LvRj9GC0L7RgNC+0LwgUGFzY2FsCgp7JG1vZGUgb2JqZnBjfXskSCt9IC8vINCU0LjRgNC10LrRgtC40LLQsCDQtNC70Y8gRnJlZSBQYXNjYWwgQ29tcGlsZXIKCnVzZXMKICBTeXNVdGlsczsgLy8g0J/QvtC00LrQu9GO0YfQsNC10Lwg0LzQvtC00YPQu9GMINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LjRgdC60LvRjtGH0LXQvdC40Y/QvNC4IChFeGNlcHRpb24pCgp2YXIKICBhLCBiLCBjOiBJbnRlZ2VyOwpiZWdpbgogIGEgOj0gMTA7CiAgYiA6PSAwOyAvLyDQl9C00LXRgdGMINCx0YPQtNC10YIg0L7RiNC40LHQutCwICjQtNC10LvQtdC90LjQtSDQvdCwINC90L7Qu9GMKQogIAogIFdyaXRlbG4oJ9Cf0YDQvtCx0YPQtdC8INCy0YvQv9C+0LvQvdC40YLRjCDQvtC/0LDRgdC90YvQuSDQutC+0LQuLi4nKTsKICAKICB0cnkKICAgIC8vINCR0LvQvtC6LCDQs9C00LUg0LzQvtC20LXRgiDQv9GA0L7QuNC30L7QudGC0Lgg0L7RiNC40LHQutCwCiAgICBXcml0ZWxuKCfQlNC10LvQuNC8ICcsIGEsICcg0L3QsCAnLCBiKTsKICAgIAogICAgLy8g0J/RgNC+0LLQtdGA0Y/QtdC8LCDRh9GC0L7QsdGLINC90LUg0LHRi9C70L4g0LTQtdC70LXQvdC40Y8g0L3QsCDQvdC+0LvRjCAo0L3QsNGI0LAgItC30LDRidC40YLQsCIpCiAgICBpZiBiID0gMCB0aGVuCiAgICAgIHJhaXNlIEV4Y2VwdGlvbi5DcmVhdGUoJ9Ce0YjQuNCx0LrQsDog0JTQtdC70LXQvdC40LUg0L3QsCDQvdC+0LvRjCEnKTsgLy8g0JjRgdC60YPRgdGB0YLQstC10L3QvdC+INCy0YvQt9GL0LLQsNC10Lwg0LjRgdC60LvRjtGH0LXQvdC40LUKICAgIAogICAgYyA6PSBhIGRpdiBiOyAvLyDQrdGC0LAg0YHRgtGA0L7QutCwINC90LUg0LLRi9C/0L7Qu9C90LjRgtGB0Y8sINC10YHQu9C4IGI9MAogICAgV3JpdGVsbign0KDQtdC30YPQu9GM0YLQsNGCOiAnLCBjKTsKICAgIAogIGV4Y2VwdAogICAgb24gRTogRXhjZXB0aW9uIGRvIC8vINCb0L7QstC40Lwg0LvRjtCx0YPRjiDQvtGI0LjQsdC60YMKICAgIGJlZ2luCiAgICAgIFdyaXRlbG4oJyEhISDQn9C+0LnQvNCw0LvQuCDQuNGB0LrQu9GO0YfQtdC90LjQtSAhISEnKTsKICAgICAgV3JpdGVsbign0KLQtdC60YHRgiDQvtGI0LjQsdC60Lg6ICcsIEUuTWVzc2FnZSk7CiAgICAgIFdyaXRlbG4oJ9Ca0LvQsNGB0YEg0L7RiNC40LHQutC4OiAnLCBFLkNsYXNzTmFtZSk7CiAgICBlbmQ7CiAgZW5kOwogIAogIFdyaXRlbG4oJ9Cf0YDQvtCz0YDQsNC80LzQsCDQt9Cw0LLQtdGA0YjQtdC90LAgKNC90LUg0YPQv9Cw0LvQsCwg0LHQu9Cw0LPQvtC00LDRgNGPINC+0LHRgNCw0LHQvtGC0LrQtSkuJyk7CiAgCiAgLy8g0KfRgtC+0LHRiyDQutC+0L3RgdC+0LvRjCDRgdGA0LDQt9GDINC90LUg0LfQsNC60YDRi9Cy0LDQu9Cw0YHRjCDQvdCwINC90LXQutC+0YLQvtGA0YvRhSDRgdCw0LnRgtCw0YUKICBSZWFkbG47CmVuZC4=