How to get rid of compiler warning confused by `continue`?
<p>The compiler shows me the following warning for the code below:</p>

<pre><code>Warning: W1036 Variable 'Address' might not have been initialized
</code></pre>

<p>The code (an MVCE snippet based on real code):</p>

<pre><code>function DoFoo(): Integer;
var
  i: Integer;
  Address, Bar: Cardinal;
begin
  for i := 1 to 5 do
  begin
    try
      Address := Hex2CardPos(IntToStr(i));
    except on EConvertError do
      continue;
    end;
    Bar := Address + 42;  // "Warning: Address might not have been initialized"
  end;
  Result := 42;
end;
</code></pre>

<p>As you can see, <code>Address</code> is either:</p>

<ol>
<li>Assigned to the Result of <code>Hex2CardPos()</code></li>
<li><code>Hex2CardPos()</code> throws an error and the loop iteration is immediately skipped.</li>
</ol>

<p>I tried to fix this by adding a useless <code>Address := 0;</code> to the beginning of the loop, but then the warning is just replaced with another:</p>

<pre><code>Hint: H2077 Value assigned to 'Address' never used.
</code></pre>

<p>Is this a compiler bug or does the warning have substance?</p>