RunError, процедура

Синтаксис


procedure RunError(ErrorCode:  Integer = 0);

Описание

Процедура RunError прерывает выполнение программы с определенным кодом ошибки. RunError не является настоящей процедурой.

Ошибки

Советы и приемы

  • Когда возникает ошибка времени выполнения и ErrorProc равен nil, Delphi вызывает RunError для вывода сообщения об ошибке и остановки программы. В графическом приложении Delphi выдает сообщение об ошибке в диалоговом окне. В консольном приложении Delphi печатает сообщение об ошибке на консоль.
  • Создавая собственную процедуру ErrorProc, можно использовать RunError для остановки программы и выдачи короткого сообщения об ошибке. Но процедура ErrorProc может выполнять и какое-нибудь другое действие, например, генерировать исключительную ситуацию или печатать другое сообщение об ошибке.
  • Процедура ExitProc и разделы завершения модулей выполняются до завершения программы.
  • Как и Halt, RunError это быстрый способ завершения программы, но он не является правильным для графического приложения, для завершения которого следует закрыть его главную форму.

Пример


// Выдача ошибки времени выполнения. Адрес вызова RunError
// становится адресом ошибки. Адрес, передаваемый в ErrorProc,
// это адрес вызова ErrorProc, который близок, но не совсем
// совпадает с адресом вызова RunError. Можно изменить
// значение Caller, но этот метод сильно зависит от генератора
// кода.
procedure ReportError(ErrorCode: Integer);
  function Caller:  Pointer;
  asm
    MOV EAX, [ESP]
  end;
type
  TErrorProc = procedure(Code: Integer; Addr: Pointer);
begin
  if ErrorProc <> nil then
    TErrorProc(ErrorProc)(ErrorCode,   Caller);
  RunError(ErrorCode);
end;

Смотрите также

Процедуры Halt, SetInOutRes.
    Учебник по языку Pascal          Лабораторные работы по программированию          Справочник



2018-02-13 10:28:47

efeiuhfeihghiurhrqfjhihfihfrifrfrhfrrfhirhfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh




Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: