Rekursive hin oder her.
Der Fehler block ist dafür da bei einem auftretenden Fehler diesen Abzufangen eine Fehlermeldung auszugeben und aus der Funktion rauszuspringen
nicht dafür um hier weitere Funktionen Schleifen\Rücksprünge\Wiederholungen oder sonstiges auszuführen.
Das nur als Anmerkung. Aber es ist dein Code