Pero todo error, o casi, se convierte en una excepción. Los bloques try-except son sólo para que le puedas dar un manejo particular a una excepción determinada. Cualquier excepción que no esté manejada por uno de esos bloques lo maneja la aplicación y tú puedes interceptarla en el evento OnException de un componente TApplicationEvents:
Código Delphi
[-]
procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception);
begin
Close;
end;
// Saludos