Эта проблема долго не давала мне покоя. Я пользовался try…except, но в режиме отладки это приносило одни проблемы.
В очередной раз я столкнулся с необходимостью проверить является ли строка числом… И написал наконец-то скрипт, не использующий метод исключения.

Function ifInt(S:String):Boolean;
Var
 i,j: Integer;
 count: Integer;
 IntBool: Boolean;
 IntList: String;
begin
 IntBool := True;
 IntList := '0123456789'; // Таким образом мы можем проверить строку на обязательное наличие нужных нам символов. В данном примере это числа от 0 до 9
 for i := 1 to length(S) do
 begin
  count := 0;
  for j := 1 to length(IntList) do
  begin
   if S[i]<>IntList[j] then
   count := count + 1;
  end;
  if count = length(IntList) then
  begin
   IntBool := False;
   Break;
  end;
 end;
 Result := IntBool;
end;