‒ Excepciones en listas y colecciones.

La excepción más conocida y usada es ElistError, esta excepción ocurre cuando:

  1. No hay memoria para expandir la lista o colección.
  2. Cuando la lista o colección intenta aumentar mas halla de su capacidad máxima.
  3. Cuando se hace referencia a un elemento inexistente en la lista.
  4. Cuando se intenta mover un elemento de la lista o colección fuera de los limites de la misma.

El siguiente ejemplo muestra como usar esta excepción con una Lista:


Descargar
{$codepage utf8}
{$mode objfpc}
Uses sysutils,classes;

Var Lista:Tlist;
    n:^integer;
Begin

  Lista:=Tlist.create;
  new(n);
  n^:=random(1000);
  Lista.add(n);
  try
   Writeln(integer(Lista.items[15]^));
  except
      on EListError do Writeln('Error elemento no existente');
  end;
End.
Código fuente 16: Excepciones con listas.
Descargar

Y este otro ejemplo con colecciones:


Descargar
{$codepage utf8}
{$mode objfpc}
Uses sysutils,classes;

Type
    TInteger=class(TCollectionItem)
      public
       n:integer;
     End;

Var ColeccionN:TCollection;
    n:TInteger;
    i:byte;
Begin
  ColeccionN:=TCollection.create(TInteger);
  n:=TInteger(ColeccionN.Add);
  n.n:=random(1000);
  try
   Writeln(TInteger(ColeccionN.items[15]).n);
  except
    on EListError do Writeln('Error elemento no existente');
  end;
End.
Código fuente 17: Excepciones con colecciones.
Descargar