2009-07-13 82 views
21

我要求德爾福本土,而不是棱鏡(淨)。如何在Delphi中引發異常?

這是我的代碼:

raise Exception.Create('some test'); 

Undeclarated idenitifier 「異常」。

問題在哪裏,我該如何拋出異常?

回答

63

在單元SysUtils中聲明異常類「Exception」。因此,您必須將「SysUtils」添加到您的使用條款中。

uses 
    SysUtils; 

procedure RaiseMyException; 
begin 
    raise Exception.Create('Hallo World!'); 
end; 
+3

以供將來參考,通過搜索包含您感興趣的標識符的源代碼,可以經常解決「未聲明的標識符」錯誤。這會告訴您它在哪裏聲明,並且還可以提供如何使用它的示例。 – 2009-07-13 14:32:56

+14

在D2006 +(也許是2005?)中,可以使用右鍵單擊菜單中的「重構 - >查找單元」選項將所需單位添加到您的使用條款中。 – 2009-07-13 21:13:32

5

您正在使用SysUtils不是嗎?在IIRC中宣佈異常。

7

您可能需要將sysutils添加到uses子句中,它不是內置的,根據Delphi簡而言之,它是可選的。

10

請記住將SYSUTILS添加到您的使用單位。

我也建議你一個很好的方法來跟蹤類,messagges和異常的意義格式:

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);