Die Frage ist ja, was erwartet man, wenn man auf ein Element zugreift, welches es garnicht gibt?
Bei deinem Beispiel zumindest würde ja eigentlich schon beim Getter der Property Nodes ein Index out of bounds erwarten, wenn ich dort auf eine Node zugreifen möchte, die es nicht gibt. Wird über eine anderen Parameter darauf zugegriffen (hab deine
Xml Implementierung nicht im Kopf) müsste man sich fragen: gibt es use cases, wo ich als Ergebnis nil zurückbekommen möchte (mit der Aussage, die node gibt es nicht) oder einen Fehler und ich muss vorher überprüfen, ob es eine bestimmte Node gibt.
Wenn du allerdings eine Implementierung wie bei TObject.Free benutzt, kann es sein, dass sich die Fehler nur verschieben, Beispiel:
Delphi-Quellcode:
N:=
XML.Node[...].Node[...];
N.Value := '
my new node';
Angenommen der Setter von Value hat so einen Mechanismus, dann gibt es hier keine Zugriffverletzung, aber es wird einfach nix gemacht und an einer anderen Stelle krachts evtl oder es gibt einen Datenverlust.