Als «exceptions» getaggte Fragen

Eine Ausnahme ist ein Ereignis in einem Anwendungsprozess, das eine Abweichung vom normalen Programmablauf erfordert.

7
Warum gibt es in C ++ kein 'finally'-Konstrukt?
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 …
57 c++  exceptions 

12
Ist es wirklich schlecht, allgemeine Ausnahmen zu erwischen?
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 …
57 c#  design  exceptions 

9
Ausnahme auslösen oder Code fehlschlagen lassen
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 …
52 exceptions 

3
Warum sind Ausnahmespezifikationen schlecht?
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. …

6
Problemumgehung für von Java überprüfte Ausnahmen
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 …

4
Warum lösen Iteratoren in Python eine Ausnahme aus?
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 …

4
Warum sollte eine Methode nicht mehrere Typen geprüfter Ausnahmen auslösen?
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. …

8
Warum sollte man eine moderne Sprache ohne Ausnahmebehandlungsmechanismus entwerfen?
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, …



8
Gibt es berechtigte Gründe, Ausnahmeobjekte zurückzugeben, anstatt sie zu werfen?
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: …


11
Sind Fehlervariablen ein Anti-Pattern oder ein gutes Design?
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, …

4
Python-Vergebung vs. Erlaubnis und Entenschreiben
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) …

8
Sollte ich bei einem aussagekräftigen Wert außerhalb des Bereichs eine Ausnahme auslösen oder selbst damit umgehen?
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 …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.