What happens when your list has like 5 elements and you'll try to invoke e.g. 7th element (which doesn't exist)? Will you just get simple nil pointer or will program crash?

I need to know that because I have in Super Heli Land (link to GitHub repo if anyone interested: https://github.com/darkhog/SuperHeliLand) couple of TList-descendent classes (TSpriteList and TAnimatedSpriteList, sprites.pas) which due to implementation details of TGameObject can be accessed on accident with out of range values for List.Items.

I'm trying to come up with a better solution, but if all I'd get here is nil pointer it's isn't really problem as my code checks if we got nil on accident.