私はPrism(ネット)ではなくDelphiネイティブを求めています。Delphiで例外を発生させる方法は?
これは私のコードです:
raise Exception.Create('some test');
Undeclarated idenitifier "例外"。
、どのように私は例外を発生させる/問題投げるんですか?
私はPrism(ネット)ではなくDelphiネイティブを求めています。Delphiで例外を発生させる方法は?
これは私のコードです:
raise Exception.Create('some test');
Undeclarated idenitifier "例外"。
、どのように私は例外を発生させる/問題投げるんですか?
例外クラス「例外」は、単位sysutilsの中で宣言されています。したがって、uses節に "SysUtils"を追加する必要があります。
uses
SysUtils;
procedure RaiseMyException;
begin
raise Exception.Create('Hallo World!');
end;
あなたはありませんsysutilsのを使用していますか?例外はIIRCに宣言されています。
あなたはそれは一言で言えばデルファイに応じで構築されており、オプションであるされていない、uses節にのsysutilsを追加する必要があります。
使用ユニットに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);
のconst – mjn
@mjnの配列とフォーマットをサポートしていますが、それは、クライアントの生活( 'TMyException'を使用するコードは)非常に簡単になります' Exception.CreateFmt'がすでにある - ちょうどパラメータと渡します残りは 'TMyException'で行われます。 –
@EdwinYip私が言っていることは、 'raise Exception.create(format( 'これはparam%d'、[param])を持つ例外です)' '短縮できます' raise Exception.CreateFmt( 'これは例外です。 param%d '、[param]); 'キーストロークが少なくても同じことをします – mjn
、 "宣言されていない識別子"のエラーは、あなたが関心のある識別子を含むソースコードを検索することで解決できることがよくあります。それは宣言されている場所を教えてくれますし、 D2006の+で –
(多分2005?)あなたは「リファクタリング - >単位の検索」を使用することができ、あなたのuses節に必要なユニットを追加するための右クリックメニューからオプションを選択します。 –
Gerry - そこにすばらしい追加のヒント!...私は、私はその機能に気づいたことはないと言って恥ずかしいです。とてもかっこいい。 :) – Jamo