Ver Mensaje Individual
  #1  
Antiguo 23-11-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Gestión de errores (try/catch/finally)

Estoy hecho un verdadero lío y sé que esto es básico, pero no me aclaro. Tengo este código:
try
Código:
{
     char cEntornoAnt[256] = "\0";
     TIniFile *fIni = new TIniFile(cEntornoAnt);

     GetPrivateProfileString("DATOS", "Entorno", "C:\\DatAfi21\\Gia.ini", cEntornoAnt, sizeof(cEntornoAnt), cInicio.c_str());

     if (!FileExists(cEntornoAnt))
          throw Exception("No se encuentra el fichero de configuracion antiguo.\nAvise al programador.");

     [Resto del código]
}
catch(Exception &exception)
{
     ShowMessage(exception.Message);
}
__finally
{
     delete cEntornoAnt;
     delete fIni;
}
Si lo pongo así al compilar me da un error E2188 Expression syntax en la declaración __finally.
Si anido otro try:
Código:
try
{
     char cEntornoAnt[256] = "\0";
     TIniFile *fIni = new TIniFile(cEntornoAnt);
     try
     {
          GetPrivateProfileString("DATOS", "Entorno", "C:\\DatAfi21\\Gia.ini", cEntornoAnt, sizeof(cEntornoAnt), cInicio.c_str());

          if (!FileExists(cEntornoAnt))
               throw Exception("No se encuentra el fichero de configuracion antiguo.\nAvise al programador.");

          [Resto del código]
     }
     catch(Exception &exception)
     {
          ShowMessage(exception.Message);
     }
}
__finally
{
     delete cEntornoAnt;
     delete fIni;
}
Entonces el compilador me da dos errores E2451 Undefined symbol 'identifier' en los dos deletes del final. ¿Qué estoy haciendo mal?
Responder Con Cita