경우 '초기화되지 않은 변수'에 대한 변경 사항 : *'사용되지 않는 값'
그러나 경우에 사용한 적이 lTime에 할당
값을 나는 2 행에 다른 경고를, 그 줄을 제거 :
lTime가 초기화되지 않았 변수컴파일러에 누락 된 항목이 있습니까? 그렇지 않습니까? 나뿐만 아니라 예외
lTime
를 할당하기 때문에procedure TFormWebServices.RemoveOldReports; var TSR : TSearchRec; I : Integer; lCutOff, lTime : Int64; TSToDelete: TStringList; S,Msg : String; E : Exception; begin lCutOff := DelphiToJavaDateTime(Now - cDefReportLifeMins/1440); I := FindFirst(FReportDir + '*.pdf',0,TSR); TSToDelete := TStringList.Create; while I = 0 do begin if (TSR.Attr and faDirectory) = 0 then begin lTime := lCutOff; // Line 1 try lTime := StrToInt64(Copy(TSR.Name,1,pos('.',TSR.Name)-1)); except on E:Exception do lTime := lCutOff; end; if lTime < lCutOff then // Line 2 TSToDelete.Add(TSR.Name); end; I := FindNext(TSR); end;
이, Why is the Compiler warning that variable may not be initialized?의 속는 사람이 아니다.
가능한 중복 (HTTP : // 유래. com/questions/11554857/why-is-the-compiler-warning-that-variable-may-be-initialized) –
실제로 중복 된 것처럼 보입니다. –
그래도 여기에서는 예외 처리를 사용할 필요가 없습니다. RTL은 정확하게이 목적을위한'TryStrTo [x]'메소드를 제공합니다. 예외 처리기가 처리하는 것보다 훨씬 효율적입니다. [TryStrToInt64 Documentation] (http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.TryStrToInt64) –