‒ Excepciones en listas y colecciones.
La excepción más conocida y usada es ElistError, esta excepción ocurre cuando:
- No hay memoria para expandir la lista o colección.
- Cuando la lista o colección intenta aumentar mas halla de su capacidad máxima.
- Cuando se hace referencia a un elemento inexistente en la lista.
- 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