¿Y si en algun sitio no interesa que devuelva mensaje?
Por ejemplo, dentro de una clase realizando cálculos.
Otra opción podría ser esta:
Código Delphi
[-]function PrecioValido(Precio: string): boolean;
var
Importe: extended;
begin
Result := False;
if TryStrToFloat(Precio, Importe) then
Result := True
else
raise EConvertError.Create('El precio no es válido');
end;
Si hacemos un proceso que calcula 200 (o 500 o 1000) precios y dentro se hacen conversiones (donde se valida), tal vez no interese que salten 39 mensajes si hay 39 errores, sino que al final se pueda decir: "30 precios no se han calculado correctamente" o similar.