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.
Нет комментариев.
Оставить комментарий:
|
|