Exception sind Ausnahmen und sollten auch so verwendet werden. Also nur, wenn ein nicht behebbarer Fehler aufgetreten ist. Ich empfehle immer Rückgabewerte zu verwenden wenn es geht. Denn: Exceptions sind sehr langsam und produzieren einiges an Overhead.
Zudem wird es von den Aufrufer wieder mehr Tipp-Arbeit, da er dann den try ... except block anlegen muss. Denn sonst kommt es zu einer unschönen Message, die selten so gewünscht ist...
P.S: Wozu brauchst denn dann noch bei Möglichkeit 2 eine
Exception. Bei einer
Exception wird die Verabeitung bis zurück zum letzen try ... except abgebrochen.