title: Are there exceptions that aren't caught by general E : Exception?
body: <p>I was wondering if there are exceptions/errors, which do make your code jump into an except block but aren't handled by  E : exception.</p>
  
  <pre><code> try
     i := StrToInt(s);
     {...do a lot more...}
   except
     on E : EConvertError do begin
       ShowMessage('You need to input a valid number.');
     end;
     on E : Exception do begin
       ShowMessage('Something went wrong.');
       Raise; 
     end;
   end;
  </code></pre>
  
  <p>Is there a way that a program could have an error that would ignore both statements in this except block?
  Or should I do it like this :</p>
  
  <pre><code> try
     i := StrToInt(s);
     {...do a lot more...}
   except
     on E : EConvertError do begin
       ShowMessage('You need to input a valid number.');
     end;
     else begin  // swapped on e : Exception with else
       ShowMessage('Something went wrong.');
       Raise; 
     end;
   end;
  </code></pre>