T
fricky schrieb:
tfa schrieb:
fricky schrieb:
blöd finde ich programmiersprachen, mit der man exceptions stillschweigend ignorieren kann. solche exceptions sind kein bisschen besser, als simple rückgabewerte.
Welche Sprache findest du dann nicht blöd?
z.b. auch solche, die exceptions überhaupt nicht kennen. entweder man machts gleich richtig, oder man lässt's bleiben.
Was ist denn jetzt richtig? Nur checked Exception und nichts sonst?
ich will z.b. manchmal auf exceptions reagieren, weil es 'ne möglichkeit gibt was zu retten. ich finde es ganz praktisch wenn mir ein compiler sagt: 'hey, hier könnte das und das schief laufen, also mach was dagegen oder wirf die exception weiter'. das trägt einiges dazu bei, stabilen code zu schreiben.
ganz doof ist es, wenn's vom compiler nicht die geringste warnung gibt und man für jede funktion in die doku schauen muss, um herauszufinden, ob überhaupt und welche exceptions denn nun generiert werden.
Die meisten Exceptions können eben nicht sinnvoll behandelt werden und müssen sowieso durchgereicht werden. Der Compiler (bzw. der Entwickler der API, die die checked Exception wirft) weiß auch nicht, ob du sie behandeln kannst. Warum sollte er dich also zwingen, dies zu tun? Die paar Fälle, wo ein Behandeln angebracht ist, musst du eben selbst herausfinden. Durch ausreichend Unittests sollte es auch möglich sein, zu verhindern, dass einem Exceptions durch die Lappen gehen.
Der Zwang führt nur dazu, dass der Entwickler die Exception eben ganz auffängt bzw. verschluckt. Wenn man Glück hat, wird der Fehler geloggt oder wenigstens auf stderr ausgegeben. Nach meiner Erfahrung trägt das überhaupt nicht zu stabilerem Code bei - ganz im Gegenteil.
Vor kurzem gab es die gleiche Diskussion übrigens auch im Java-Forum.