델파이 책에서 raise란 키워드가 나왔는데..도움말을 봐도
제대로 이해가 안됩니다...아시는 분 자세히 가르쳐주세요..^^
다음과 같은 예제가 있을 때 raise가 어떤 역할을
하는지 알고 싶습니다.
function GetFileList(const Path: string): TStringList;
var
I: Integer;
SearchRec: TSearchRec;
begin
Result := TStringList.Create;
try
I := FindFirst(Path, 0, SearchRec);
while I = 0 do
begin
Result.Add(SearchRec.Name);
I := FindNext(SearchRec);
end;
except
Result.Free;
raise;
end;
end;
raise는 예외를 발생시킬때 사용합니다.
아래의 코드는 예외에 대한 처리도 하고 예외도 보여주는 코드네요...
try ~ except ~ end는 예외를 집어 삼키죠... 그러므로 마지막에 raise가 없다면 사용자는
예외가 발생했는지 모르겠죠.. raise를 써서 예외가 발생했다는 것을 알려주네요.
^^ 항상 즐코하세요.
azure wrote:
> 델파이 책에서 raise란 키워드가 나왔는데..도움말을 봐도
> 제대로 이해가 안됩니다...아시는 분 자세히 가르쳐주세요..^^
>
> 다음과 같은 예제가 있을 때 raise가 어떤 역할을
> 하는지 알고 싶습니다.
>
> function GetFileList(const Path: string): TStringList;
>
> var
> I: Integer;
> SearchRec: TSearchRec;
> begin
> Result := TStringList.Create;
> try
> I := FindFirst(Path, 0, SearchRec);
> while I = 0 do
> begin
> Result.Add(SearchRec.Name);
> I := FindNext(SearchRec);
> end;
> except
> Result.Free;
> raise;
> end;
> end;