Benutzt irgendwer von euch das throw hinter der Funktionsdeklaration? Ich habe heute mal festgestellt, dass es so etwas gibt, aber den Sinn verstehe ich noch nicht so ganz.
Nach ein bisschen herumexperimentieren sieht es so aus, als ob man bloß eine Warnung bekommt, wenn man direkt in der Funktion eine Exception wirft, die nicht auf diesen Typ passt. Wenn allerdings eine aufgerufenen Funktion eine Exception wirft, kriegt man nichtmal eine Warnung.
Also zur Fehlervermeidung scheint mir das sehr wenig zu bringen. Und auch Optimierungen kann ich mir kaum vorstellen, da die Funktion ja eine Exception schmeißen kann, egal ob da jetzt ein throw hinter steht oder nicht.
Das es guter Stil ist, oft const zu benutzen, leuchtet ja schnell ein, aber ich Frage mich, wieso man throw benutzen sollte. Nur um zu zeigen, dass die Funktion etwas wirft? Das ginge ja fast genausogut per Kommentar dahinter.
Also, gibt es noch einen anderen Nutzen, oder ist throw einfach nur eine standardisierte Art, dem Programmierer mitzuteilen, was diese FUnktion macht und bringt sonst nix?