Ausnahmen in C ++





Ausnahmen in C ++, c ++ Ausnahmen, Programmieren für Anfänger

manchmal, während Programme, Es gibt Situationen, die weiter ihre normale Arbeit behindern. Beispielsweise durch die Anzahl der Nullteilungs, das Programm wird trotz der Tatsache arbeiten,, Wie viele Benutzer in dem Programm arbeiten, und wie viele Daten gemacht. Das Programm einfach beendet. und stell dir vor, wenn vor dem Anwenderprogramm Daten gebracht und ein paar Stunden Berechnungen ausgegeben. Mit einem solchen Notfall Abschluss des Programms, werden alle Daten und Berechnungen gehen verloren. zustimmen – nicht sehr schön. Es kann sich auch um diese Situation treffen, wenn ein Programm versucht, zu öffnen ist in diesem Moment nicht-Datei zur Verfügung, oder fordern Sie mehr, als der verfügbare Speicher.

Diese Art von Situation müssen Programmierer versuchen, Anwendungen zu antizipieren und Design, so dass sie flexibel reagieren, statt der Notabschaltung. In meinem Lieblingsbuch Die C ++ Programmiersprache. Vorlesungen und Seminare Vom Autor. Prata, die folgende Definition von Ausnahmen in C ++ gegeben:

Ausnahmen in C ++, c ++ Ausnahmen, Programmieren für Anfänger

Um Ihnen war es nicht schwierig, den Mechanismus der Ausnahmen in C ++ zu verstehen, sie betrachten das einfache Beispiel. Darin sehen wir den Fall, an einem gewissen Punkt, dass während der Programm-Berechnungen, treffen können über die Aufteilung der 0. Geben Sie den Code in und kompilieren, unter. Um sicherzustellen, dass, wie das Programm reagiert auf diese Situation, in den Zahlen füllen 0 Variable num2 (es wirkt Teiler Beispiel).

da die Variable war ist 3, Zyklus während, in einer normalen Situation, muss dreimal arbeiten. Bei jedem Schritt des Zyklus war dekrementiert über Dekrement. Aber wie wir gerade haben Wert 0 Variable num2, Das Programm findet nicht statt bis zum Ende der auch den ersten Schritt des Zyklus. Sie unterbrach.

Die folgende Auflistung, wir werden dieses Versäumnis korrigieren – fügen Sie ein paar Komponenten, zu helfen, ohne Unterbrechung des Programms auf diese Situation reagieren. Nämlich:

  • Block Versuchen oder Versuchen-Block (Versuch, Probe);
  • Ausnahmen Generator – Block werfen (behandeln, Lauf);
  • Exception-Handler, was es dazwischen -command Fang (Fang, Fang)

Wie funktioniert eine Ausnahme? – Die Programmierregister in dem Code (in Versuchen-Block) spezifischen Zustand, dass, wenn die Variable num2 wird gleich 0, dann in diesem Fall benötigen Sie eine Ausnahme zu erzeugen, werfen. weiter, etwas, das erzeugt hat werfen, abfängt Fang-Block (als Funktion des Parameters) und das Programm wird den Code ausführen, die in diesem Block eingetragen ist.

Beispiel:

im Detail verstehen. Linien 21-29 Einheit Versuchen. Es ist notwendig, den Code zu platzieren, was zu einer irreversiblen Fehlern führen kann. Vor einem arithmetischen Ausdruck Aufteilen der gegebenen Bedingungen: wenn num2 Es ist gleich 0, dann lassen werfen erzeugt eine Reihe 999 (z.B). In dem Fall,, unmittelbar nach der Erzeugung von, Weitere Befehle im Block Versuchen wird nicht mehr durchgeführt werden,, und die schiere Anzahl “fallen” in Block Fang (als Parameter). Als nächstes führen die, wie in Block angedeutet Fang – in diesem Fall, dies ist eine Fehlermeldung:

cout << "Fehlernummer" << thr << " - Division durch 0!!!" << endl;

und das Programm wird die folgenden Befehle ausführen. In dem Fall,, wenn die Anzahl der num2 != 0, erzeugt es nichts und werfen Fang-Gerät funktioniert nicht.

Jetzt ansehen, wie man das Programm zu reagieren, wenn Sie eingeben num2 Null. führen Sie das Programm.

Ausnahmen in C ++, c ++ Ausnahmen, Programmieren für Anfänger

Wie Sie sehen können, wo es könnte ein Fehler auf und die baldige Fertigstellung des Programms sein, wir sahen eine Nachricht Fehler №999 – Division durch 0!!! Programm “sprang” durch den Teilungsbetrieb auf 0 und erfüllt Fang-Block.

Um Ihnen zu helfen besser zu verstehen,, als Wert erzeugt werfen abfängt Fang-Block, den Code in den Zeilen ersetzen 21 – 33 diese:

In diesem Beispiel, wenn num2 ist 0, werfen erzeugt einen String, und nicht die Anzahl. Reihe “Stürze” in Fang-Einheit und angezeigt.

Lassen Sie uns ein Beispiel an, wenn eine Ausnahme erzeugt wird Funktionen, teilt diese Zahl durch eine andere:

Um den Ausschluss funktionierte richtig, Diese Funktion sollte in den Block aufrufen Versuchen:

Fang die Anzahl der Abschnitte 99, eine Abteilung von 0 nicht gehalten werden.

Haupt-, müssen Sie die Ausnahmen in C ++ zu erinnern:

  • das Versuchen-Block (Wiederholungsblock) Sie müssen den Code platzieren, das könnte möglicherweise zu der Schließung des Notprogramm führen;
  • Eine Ausnahme wird in dem Block erzeugt, werfen. wenn werfen Arbeitsprogramm wird automatisch die Ausführung des Befehls starten Fang-Block, ignorieren den Rest des Codes in Versuchen-Block;
  • Der Trap-Block – Fang-Block, fängt die, Einheit, die erzeugt werfen. Er muss unter sein Versuchen-Block. Nichts sollte zwischen geschrieben werden;
  • Fang-Gerät funktioniert nicht, wenn die Ausnahme wurden nicht generiert,. Das Programm einfach ignorieren.
Newsletter neue Lektionen über die Programmierung:

Ausnahmen in C ++
3.7 (73.33%) 3 Stimmen

6 Gedanken zu "Ausnahmen in C ++

  1. Eigentlich, Thema Ausnahmen in einer beliebigen Programmiersprache – ziemlich rutschig. Ein solcher Mechanismus macht ihre Vorteile, und Nachteile und die Verwendung von versteckten Gefahren.
    Die Sprache C ++ – abgeleitet von C, und in dieser Entwicklung war die Beseitigung. Weite Entwicklung (2008-2009GG) C-Sprache – Diese Sprache Go. Von dieser Ausschluss wurde mit einem sehr gründlichen veröffentlicht Argumenten ausgeschlossen und Entwickler, warum sie es tat.
    Reyume: Ausnahmen in C ++ verwendet werden sollen, aber es, wo sie dringend benötigt, wo sie sind unverzichtbar. In anderen Fällen ist es besser, die traditionelle Rückkehr einen Fehlercode zu verwenden,.

  2. Hilfe die gut Leute!!! Was ist falsch mit einem Versuch I?

    1. Und Sie haben es zu werfen, nicht erreicht – Absturz tritt früher, wenn geteilt durch 0.

      Und der Parameter des Fangs muss etwas sein, von der Klasse Exception geerbt:

  3. Guten Tag. Sie haben einen Fehler in dem dritten Eintrag.

    cout << num1 / num2 << endl; //Wir müssen über die if-Anweisung entziehen. sonst funktioniert es nicht.

  4. Онлайн компилятор вообще не компилирует код с “Versuchen” usw. … – показывает ошибку

    1. 1). Нужно указывать КАКОЙ онлайн компилятор – es gibt viele davon, и есть совсем с придурью
      2). В разных стандартах C++ (например C++11) синтаксис записи блока try {} Fang – может отличаться;
      3). Многие онлайн компиляторы (лучшие) позволяют указать тот стандарт языка C++, который будет использоваться в коде;

Hinterlasse eine Antwort

Deine Email-Adresse wird nicht veröffentlicht. erforderliche Felder sind markiert *