How to validate a date field

I have the following function to validate if the string entered is a
valid date.  However, it appears that it always gives me error when I
pass in a string that is an invalid date... which means that it doesnt
go to the 'except' clause to catch the exceptions....

function Tform_Planning_.isDate( const sDate : String ) : Boolean;
begin
  try
    Result := True;
    StrToDate(sDate);
  except
    Result := False;
  end;
end;

So, in order to catch exceptions whereby the input string is less than
8 char (not entered as 20021222 or 2002/12/22)... I modified to the
following, but apparently it is not working as well....

function Tform_Planning_.isDate( const sDate : String ) : Boolean;
begin
  if Length(sDate) < 8 then
    Result := False
  else begin
        try
      Result := True;
                StrToDate(sDate);
        except
                Result := False;
        end;
  end;
end;

Can anyone suggest a correct way to validate a date field?
Appreciate all help given...

Thanks & Brgds.