Zusammenfassung
In diesem Buch haben wir an einigen Stellen von sogenannten Laufzeitfehlern gesprochen. Typische Situationen, welche einen Laufzeitfehler auslösen können, sind zum Beispiel:
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Dies ist eigentlich nicht ganz korrekt: Man unterscheidet zwischen sogenannt überprüften und unüberprüften Exception. Eine überprüfte Exception muss entweder direkt aufgefangen werden (innerhalb einer try-catch Anweisung) oder der Methodenkopf muss die Exception hinter throws angeben. Eine unüberprüfte Exception erfordert kein throws im Methodenkopf. Die Klasse NumberFormatException ist zum Beispiel eine unüberprüfte Exception. Es ist aber auch nicht falsch, wenn man im Methodenkopf auch für unüberprüfte Exception jeweils ein throws definiert.
Literatur
John Lewis and William Loftus. Java Software Solutions – Foundations of Program Design.Pearson Global Edition, 8th edition edition, 2015.
Author information
Authors and Affiliations
Corresponding author
13.1 Elektronisches Zusatzmaterial
Aufgaben und Übungen zu Kap. 13
Aufgaben und Übungen zu Kap. 13
Theorieaufgaben
-
1.
Die erste der folgenden Anweisungen wird möglicherweise eine ClassCastException, die zweite möglicherweise eine FileNotFoundException werfen. Fangen Sie diese je mit einer try-catch Anweisung ab.
-
CDPlayer cdPlayer = (CDPlayer) mPlayer;
-
Scanner fileScan = new Scanner(new File("/url/to/file.txt"));
-
-
2.
Die folgende Methode increaseSemester soll eine NotInitializedException werfen, falls s noch nicht instanziiert ist (also null referenziert). Ergänzen Sie die Methode so, dass die geworfene NotInitializedException an die aufrufende Methode zurückgegeben wird:
\(\texttt {public\ void\ increaseSemester(Student\ s) \{ \ldots } \)
-
3
Definieren Sie eine Klasse FatalException. Wird diese Exception geworfen, soll folgende Fehlermeldung ausgegeben und im entsprechenden Objekt gespeichert werden:
Fataler Fehler aufgetreten.
-
4.
Illustrieren Sie an folgender Skizze, wie eine Exception \(\ldots \)
-
\(\ldots \) gar nicht behandelt wird.
-
\(\ldots \) dort aufgefangen wird, wo diese auftritt.
-
\(\ldots \) an einer andere Stelle aufgefangen wird (z. B. in doThis).
Hierbei nehmen wir an, dass in der Methode help eine Anweisung ausgeführt wird, die möglicherweise schief geht – falls dies der Fall sein sollte, wird eine neue OwnException geworfen.
-
-
5.
Welche Ausgabe generiert die main Methode in der Klasse ExceptionTest mit \(\ldots \)
-
1.
\(\ldots \) index = -1.
-
2.
\(\ldots \) index = 1.
-
3.
\(\ldots \) index = 2.
-
4.
\(\ldots \) index = 5.
Die Klassen Review, IllegalIndexException und NegativeIndexException sind auf der nächsten Seite definiert.
-
1.
-
6.
Wie müssen Sie das obige Beispiel anpassen, dass das Programm auch für den Fall index = 5 ordnungsgemäss terminiert.
Java Übungen
-
1.
Schreiben Sie ein Programm, das dem Benutzer die Eingabe von beliebig vielen ganzen Zahlen ermöglicht. Die eingegebenen Zahlen sollen in einer Liste gespeichert und am Schluss ausgegeben werden. Fangen Sie die Situation ab, in der der Benutzer eine Gleitkommazahl oder sonstige Zeichen eingibt. Hierzu können Sie die NumberFormatException verwenden, die von der Methode parseInt geworfen wird, falls die zu konvertierende Zeichenkette keine ganze Zahl ist. Gibt der Benutzer q ein, soll das Programm terminieren.
\(\rightarrow \) Video V-13.1
-
2.
Programmieren Sie eine eigene Klasse StringTooLongException, die von Exception erbt. Schreiben Sie dann in einer Testklasse eine main Methode, die eine statische Methode readInput aufruft. Die Methode readInput bittet den Benutzer, eine Zeichenkette mit maximal 20 Zeichen einzugeben. Falls eine zu lange Zeichenkette eingegeben wird, soll diese Methode eine StringTooLongException werfen, die weder hier noch in der main Methode abgefangen wird. Testen Sie verschiedene Abläufe Ihres Programmes!
Modifizieren Sie Ihr Programm so, dass die StringTooLongException in main aufgefangen wird. Geben Sie eine Fehlermeldung aus und danach soll das Programm normal terminieren.
\(\rightarrow \) Video V-13.2
Rights and permissions
Copyright information
© 2020 Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature
About this chapter
Cite this chapter
Riesen, K. (2020). Laufzeitfehler – Die Klasse Exception. In: Java in 14 Wochen. Springer Vieweg, Wiesbaden. https://doi.org/10.1007/978-3-658-30313-6_13
Download citation
DOI: https://doi.org/10.1007/978-3-658-30313-6_13
Published:
Publisher Name: Springer Vieweg, Wiesbaden
Print ISBN: 978-3-658-30312-9
Online ISBN: 978-3-658-30313-6
eBook Packages: Computer Science and Engineering (German Language)