Как поднять исключения в Delphi? - PullRequest
24 голосов
/ 13 июля 2009

Я прошу родной Delphi, а не Prism (net).

Это мой код:

raise Exception.Create('some test');

Необъявленный идентификатор "Исключение".

В чем проблема, как выкинуть / поднять исключения?

Ответы [ 4 ]

66 голосов
/ 13 июля 2009

Класс исключений «Exception» объявляется в модуле SysUtils. Таким образом, вы должны добавить «SysUtils» к вашему предложению использования.

uses
  SysUtils;

procedure RaiseMyException;
begin
  raise Exception.Create('Hallo World!');
end;
11 голосов
/ 14 июля 2009

Не забудьте добавить SYSUTILS в ваши юниты.

Я также предлагаю вам хороший способ отслеживать категории, форматы сообщений и значение исключения:

Type TMyException=class
public
  class procedure RaiseError1(param:integer);
  class procedure RaiseError2(param1,param2:integer);
  class procedure RaiseError3(param:string);
end;

implementation

class procedure TMyException.RaiseError1(param:integer);
begin
  raise Exception.create(format('This is an exception with param %d',[param]));
end;

//declare here other RaiseErrorX

Простой способ использовать это:

TMyException.RaiseError1(123);
7 голосов
/ 13 июля 2009

Возможно, вам понадобится добавить sysutils к предложению использования, оно не является встроенным и является дополнительным в соответствии с Delphi в двух словах.

5 голосов
/ 13 июля 2009

Вы используете SysUtils, не так ли? Исключение объявляется там IIRC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...