Ich bin Informatikstudent, deshalb weiß ich nicht viel.Verschiedene Arten von Programmablauf?
Ich habe kürzlich mit einem Freund gesprochen, der gerade einen Job als (Java) Softwareentwickler bekommen hat. Er erzählte mir, dass es in seinem Job einen Typ gibt, der sehr erfahren in C++ ist, aber leider jedes Mal, wenn er Code in Java schreibt, benutzt er den Try-Catch, um den Fluss des Programms zu kontrollieren. Laut meinem Freund ist das in Java ein falscher Stil. Ist das wahr? Was sind die Unterschiede (wenn überhaupt) in try-catch (-finally in Java) zwischen C++ und Java?
+1 zu John Weldon's Antwort. Beachten Sie, dass einer der wirklich unangenehmen Aspekte eines Teils des Java-Ökosystems (und das ist eine Java-Spezifität) die übermäßige Verwendung von ** checked ** -Ausnahmen durch einige APIs/Framework ist. Grundsätzlich erzwingen die API-Benutzer, den Fluss ihres Programms zu kontrollieren, indem sie eine sinnlose, überprüfungsfreie Ausnahme für Dinge fangen, die überhaupt nicht außergewöhnlich sind. Ein gewisser Rahmen, wie der Frühling, ist richtig gestaltet und missbilligt diese furchtbar schlechte Praxis. Joshua Bloch in seinem * Effective Java * empfiehlt, eine "State Testing Methode" zu bevorzugen, um unnötige Ausnahmen zu umgehen. – NoozNooz42
Hallo Danke für die Antwort. "Erzwingt im Grunde die API-Benutzer, den Fluss ihres Programms zu kontrollieren, indem sie sinnlose, überprüfungsfreie Ausnahme für Dinge fangen, die überhaupt nicht außergewöhnlich sind." Also das ist der Unterschied in try-catch zwischen C++/Java? Was meinst du mit "checked" Ausnahmen? Prost – Muggen
Siehe http://www.javapractices.com/topic/TopicAction.do?Id=129. Geprüfte Ausnahmen sind im Wesentlichen ein Missbrauch von Ausnahmen für eine nicht außergewöhnliche Flusskontrolle. Sie sind auch ein Wartungsalbtraum. –