Für meinen Geschmack ist das 2. Exit Sub völlig in Ordnung.
Ist wohl schon Geschmackssache, aber ich sehe das nicht so.
On Error goto ErrHandler
'code
Exit Sub
ErrHandler:
'print "irgendwas'
End Sub
Sobald im ErrorHandler, kommt dann bei 'End Sub' eine "No Resume"-Fehlermeldung.
Da jetzt einfach eine "Exit Sub" reinzuschalten, finde ich persönlich nicht als "schön". Denn erstmal ist so nicht ersichtlich, dass Exit Sub ein Err=0 macht. Siehe auch die Frage oben von littleS als Auslöser dieses Threads.
Meines Erachtens ist es durchgängiger, hier mit 2 Sprungmarken zu arbeiten:
On Error goto ErrHandler
'code
GoOut:
Exit Sub
ErrHandler:
'print "irgendwas'
Resume GoOut
End Sub
Wenn man das immer so macht, hat das noch einen Vorteil. Statt ExitScript verwendet man immer GoOut, also auch z.B. bei anderen Prüfungen/If-Abfragen etc. Im GoOut kann man dann noch was anderes machen, was allgemein immer gemacht werden soll, wenn man die Routine verlässt.
Man sollte das IMHO aber dann durchgängig machen, und ansonsten Sprungmarken immer vermeiden.
Außerdem ist es so schön durchgängig: Eine Fehlerbehandlung wird immer sauber durch ein Resume beendet.
Aber wie schon erwähnt: ist wohl "Geschmackssache". Am wichtigsten ist IMHO, das immer gleich zu machen, zumindest für ein Projekt.