1. Aufgabe:
Beschreiben Sie, wie Sie einen Haltepunkt für den Debugger in einem Programm setzen.
2. Aufgabe:
Sie vereinbaren für einen try-Block mehrere Exception Handler. In welcher Reihenfolge werden diese Exception Handler bearbeitet? An welcher Position muss sich der Exception Handler befinden, der alle denkbaren Ausnahmen auf einmal behandelt?
3. Aufgabe:
Sie erzeugen eigene Ausnahmen mit dem Schlüsselwort throw und übergeben dabei ganze Zahlen als Argument. Wie muss eine catch-Anweisung aussehen, die diese Ausnahmen verarbeitet?
4. Aufgabe:
Programmieren Sie für den Taschenrechner aus diesem Studienheft eine eigene Ausnahmebehandlung, die Konvertierungsfehler bei den beiden Eingabefeldern für die Zahlen abfängt. Erstellen Sie dazu eine Methode, die sich für jedes LineEdit-Widget verwenden lässt.
Wenn die Konvertierung nicht gelingt, soll eine Meldung erscheinen, die den Anwender auf den Fehler hinweist und den ungültigen Wert noch einmal anzeigt. Außerdem soll der Eingabefokus auf das Feld gesetzt werden, das die Ausnahme ausgelöst hat. Die Ausgabe der Meldung und auch das Setzen des Fokus sollen in der Methode erfolgen.
Wenn die Konvertierung nicht gelungen ist, soll der Taschenrechner keine Berechnungen durchführen. Dazu können Sie zum Beispiel in der Methode für die Überprüfung eine eigene Ausnahme auslösen, die Sie dann in der Methode mit den Berechnungen auswerten.
Einige Hinweise zur Lösung:
Den Fokus können Sie mit der Anweisung <Name>->setFocus() setzen. <Name> steht dabei für den Bezeichner des Widgets, das den Fokus erhalten soll.
Um ein Widget komplett an eine Methode zu übergeben, vereinbaren Sie einen Zeiger mit dem Typ des Widgets als Parameter. Der Typ für ein Eingabefeld ist zum Beispiel QLineEdit. Als Argument übergeben Sie dann den Namen des Widgets.
Beschreiben Sie, wie Sie für die Lösung vorgehen. Schicken Sie außerdem das vollständige Projekt mit allen Unterordnern und Dateien ein. Um Übertragungszeit und -kosten zu sparen, können Sie das Projekt mit einem geeigneten Programm packen – zum Beispiel mit WinZip oder direkt über das Betriebssystem.