{$mode objfpc} program testlist; uses Sysutils, Classes; var l: TList; IsCaught: boolean; begin L:= TList.Create; IsCaught:=false; Try WriteLn(LongInt(L[0]));{L[0] not exist, ==> access violation} L.Free; Except on eListError do IsCaught:=true; end; If not IsCaught then begin Writeln('Error in TList'); Halt(1); end; end.