Die Ausnahmebehandlung in C ++ ist auf try / throw / catch beschränkt. Im Gegensatz zu Object Pascal, Java, C # und Python wurde das finallyKonstrukt auch in C ++ 11 nicht implementiert. Ich habe sehr viel C ++ - Literatur gesehen, die sich mit "Exception Safe Code" befasst. Lippman …
Normalerweise stimme ich den meisten Warnungen zur Codeanalyse zu und versuche, diese einzuhalten. Allerdings fällt es mir hier schwerer: CA1031: Allgemeine Ausnahmetypen nicht abfangen Ich verstehe die Gründe für diese Regel. Aber wenn ich in der Praxis unabhängig von der ausgelösten Ausnahme die gleiche Aktion ausführen möchte, warum sollte ich …
Ich frage mich, ob es gegen diesen Stil Vor- und Nachteile gibt: private void LoadMaterial(string name) { if (_Materials.ContainsKey(name)) { throw new ArgumentException("The material named " + name + " has already been loaded."); } _Materials.Add( name, Resources.Load(string.Format("Materials/{0}", name)) as Material ); } Diese Methode sollte jeweils namenur einmal ausgeführt …
Vor mehr als 10 Jahren haben sie Ihnen beigebracht, Ausnahmespezifizierer zu verwenden. Da ich einer der torvaldischen C-Programmierer bin, der C ++ hartnäckig meidet, wenn ich nicht dazu gezwungen werde, lande ich nur sporadisch in C ++. Die Mehrheit der C ++ - Programmierer scheint sich jedoch über Ausnahmespezifizierer hinwegzusetzen. …
Ich schätze die neuen Java 8-Funktionen für Lambdas und Standardmethoden-Schnittstellen sehr. Trotzdem langweilen mich geprüfte Ausnahmen. Wenn ich zum Beispiel nur alle sichtbaren Felder eines Objekts auflisten möchte, möchte ich einfach Folgendes schreiben: Arrays.asList(p.getClass().getFields()).forEach( f -> System.out.println(f.get(p)) ); Da die getMethode jedoch möglicherweise eine aktivierte Ausnahme auslöst, die nicht mit …
Hier ist die Syntax für Iteratoren in Java (etwas ähnliche Syntax in C #): Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } Welches macht Sinn. Hier ist die äquivalente Syntax in Python: it = iter(sequence) while True: try: value = it.next() except StopIteration: break print(value) Ich dachte, Ausnahmen sollten …
Wir verwenden SonarQube, um unseren Java-Code zu analysieren. Dabei gilt folgende Regel (kritisch): Öffentliche Methoden sollten höchstens eine aktivierte Ausnahme auslösen Durch die Verwendung von aktivierten Ausnahmen werden Methodenaufrufer gezwungen, Fehler zu behandeln, indem sie entweder weitergegeben oder behandelt werden. Dies macht diese Ausnahmen vollständig Teil der API der Methode. …
Viele moderne Sprachen bieten umfangreiche Funktionen zur Ausnahmebehandlung , die Programmiersprache Swift von Apple bietet jedoch keinen Mechanismus zur Ausnahmebehandlung . Ich bin so durchdrungen von Ausnahmen, dass ich Probleme habe, mir darüber Gedanken zu machen, was dies bedeutet. Swift hat Behauptungen und natürlich Rückgabewerte. Aber ich habe Probleme damit, …
Ich weiß, dass ich in PHP eine Ausnahme vom Konstruktor auslösen kann, aber sollte ich das tun? Zum Beispiel, wenn der Wert eines Parameters nicht dem entspricht, den ich erwartet habe. Oder sollte ich es verschieben, eine Ausnahme auszulösen, bis eine Methode aufgerufen wird? Was sind in beiden Fällen Vor- …
Darüber habe ich eigentlich schon eine ganze Weile nachgedacht. Ich bin selbst keine englische Muttersprachlerin, aber ich habe jahrelange Programmiererfahrung und ich habe mich immer danach erkundigt. Warum heißt es Ausnahme, aber nicht Fehler, da es sich um Fehler handelt? Es könnte PageNotFoundErrorstattdessen sein PageNotFoundException.
Diese Frage gilt für alle OO-Programmiersprachen, die die Ausnahmebehandlung unterstützen. Ich verwende C # nur zu Illustrationszwecken. Ausnahmen sollen normalerweise ausgelöst werden, wenn ein Problem auftritt, das der Code nicht sofort verarbeiten kann, und dann in einer catchKlausel an einer anderen Stelle (normalerweise einem äußeren Stapelrahmen) abgefangen werden . F: …
MethodA ruft eine MethodB auf, die wiederum MethodC aufruft. In MethodB oder MethodC gibt es KEINE Ausnahmebehandlung. In MethodA gibt es jedoch eine Ausnahmebehandlung. In MethodC tritt eine Ausnahme auf. Jetzt sprudelt diese Ausnahme zu MethodA, die sie entsprechend behandelt. Was ist daran falsch? Meiner Meinung nach wird ein Aufrufer …
Um mehrere mögliche Fehler zu behandeln, die die Ausführung nicht anhalten sollten, habe ich eine errorVariable, die Clients überprüfen und zum Auslösen von Ausnahmen verwenden können. Ist das ein Anti-Pattern? Gibt es eine bessere Möglichkeit, damit umzugehen? Ein Beispiel dafür finden Sie in der mysqli- API von PHP . Angenommen, …
In Python höre ich oft, dass es besser ist, "um Verzeihung zu bitten" (Ausnahmefang), als "um Erlaubnis zu bitten" (Typ- / Zustandsprüfung). In Bezug auf die Durchsetzung der Enten-Typisierung in Python ist dies try: x = foo.bar except AttributeError: pass else: do(x) besser oder schlechter als if hasattr(foo, "bar"): do(foo.bar) …
Ich habe eine Struktur geschrieben, die Breiten- / Längengradkoordinaten darstellt. Ihre Werte reichen von -180 bis 180 für Längen und 90 bis -90 für Breiten. Wenn mir ein Benutzer dieser Struktur einen Wert außerhalb dieses Bereichs gibt, habe ich zwei Möglichkeiten: Ausnahme auslösen (Argument außerhalb des gültigen Bereichs) Konvertieren Sie …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.