Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   mensaje raise Exception.Create('Error Message'); (https://www.clubdelphi.com/foros/showthread.php?t=89191)

branncg 13-10-2015 17:09:49

mensaje raise Exception.Create('Error Message');
 
Una ayuda por favor , como tengo que escribir este código?:
raise Exception.Create('Error Message');
intento varias formas pero me sigue saliendo error al compilar

Casimiro Notevi 13-10-2015 17:32:04

Pon el resto del código fuente y dinos qué error te sale :rolleyes:

branncg 13-10-2015 17:42:10

Código Delphi [-]
function CNumeroNatural.digito(posicion: byte):byte;
var aux:cardinal; vez,digito,nrodigitos:byte;
begin
  aux:=valor;
  nrodigitos:=trunc(ln(valor)/ln(10))+1;
  if (posicion>0) and (posicion<=nrodigitos) then
  begin
    vez:=1;
    while aux>0 do begin

      if (nrodigitos+1)-vez=posicion then digito:=aux mod 10;
      aux:=aux div 10;
      vez:=vez+1;
    end;
    result:=digito;
  end
else
  raise CNumeroNatural.Create('Error: FUERA DE RANGO');

end;



el error sale.....[dcc32 Error] CEMNumeroNatural.pas(51): E2034 Too many actual parameters
[dcc32 Fatal Error] F2063 Could not compile used unit 'CEMNumeroNatural.pas'

Ñuño Martínez 13-10-2015 17:46:54

Hola branncg. No olvides poner las etiquetas de código, por favor:


En cuanto a tu consulta, sólo puedes lanzar excepciones de clase Exception o derivadas de este. CNumeroNatural no sólo no cumple con dicho requisito, sino que además estoy por asegurar que su constructor no acepta ningún parámetro.

ecfisa 13-10-2015 18:19:45

Hola.

Si, opino del mismo modo.

Creo que en tu caso sería:
Código Delphi [-]
...
  else
    raise ERangeError.Create('Error: FUERA DE RANGO');
end;

Saludos :)

Neftali [Germán.Estévez] 14-10-2015 11:36:28

Cita:

Empezado por branncg (Mensaje 497872)
como tengo que escribir este código?:
Código Delphi [-]
  raise Exception.Create('Error Message');

Bueno, tal y como está el código es correcto y puedes colocarlo donde necesites "levantar" esa excepción.

Las excepciones en Delphi, al igual que cualquier otro objeto son clases y derivan unas de otras.

Si decimos que todos los componentes derivan de TComponent o todos los objetos derivan de TObject, podemos decir que todas las excepciones derivan de Exception (que también deriva de TObject).

De esta forma puedes usar la clase genérica Exception para generar una excepción:

Código Delphi [-]
  raise Exception.Create('Excepción genérica');

O puedes "afinar" más, utilizando otras clases existentes:

Código Delphi [-]
  raise EConvertError.Create('Error al convertir el código de artículo');

O incluso puedes crear tus propias clases para Excepciones de forma similar a como se crea un componentes o cualquier otra clase.

Revisa este artículo para ver en detalle cómo puedes utilizarlas.


La franja horaria es GMT +2. Ahora son las 18:07:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi