コンテキストについて詳しく説明するために、これを再現する方法を説明します。
- Delphi 7(ただし、おそらくより新しいバージョンも)
- タイプライブラリ「MicrosoftVBScript正規表現5.5」のインポート
このコードを中心にプログラムを作成します。
var
re:RegExp;
try
re:=CoRegExp.Create;
re.Pattern:='(';//is an invalid regex, but see below
re.Test('');
except
on e:Exception do
Caption:=e.ClassName+' '+e.Message;
end;
これは例外をスローしますEOleError OLE error 800A139C
これは、SysErrorMessageがこのコードで空の文字列を返し、EOleSysErrorコンストラクターがデフォルトでSOleErrorリソース文字列を使用して何かを返すためです。
より良いエラーの説明を取得するためのSysErrorMessageの代わりにwinapiはありますか?少しグーグルすると、コードは「括弧がありません」エラーを表しますが、システムから(ローカライズされた)説明を取得する方法がある場合は、次の列挙を追加するよりも、それを使用することをお勧めします私のプロジェクトのエラー記述定数。