'Value never used' changes to 'variable not initialized'
<p>If I compile the below code it gives a warning on line 1:</p>

<blockquote>
  <p>value assigned to lTime never used*</p>
</blockquote>

<p>But if I remove that line, I get a different warning on line 2:</p>

<blockquote>
  <p>variable lTime might not have been initialized</p>
</blockquote>

<p>Is the compiler missing something, or am I?</p>

<pre><code>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 &lt; lCutOff then    // Line 2
        TSToDelete.Add(TSR.Name);
    end;
    I := FindNext(TSR);
  end;
</code></pre>

<p>This is not a dupe of <a href="https://stackoverflow.com/questions/11554857">Why is the Compiler warning that variable may not be initialized?</a>, because I assign <code>lTime</code> in the exception as well.</p>