Skip to main content

Laufzeitfehler – Die Klasse Exception

  • Chapter
  • First Online:
Java in 14 Wochen
  • 5489 Accesses

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:

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 34.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 44.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 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

  1. John Lewis and William Loftus. Java Software Solutions – Foundations of Program Design.Pearson Global Edition, 8th edition edition, 2015.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Kaspar Riesen .

13.1 Elektronisches Zusatzmaterial

Aufgaben und Übungen zu Kap. 13

Aufgaben und Übungen zu Kap. 13

Theorieaufgaben

  1. 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. 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. 3

    Definieren Sie eine Klasse FatalException. Wird diese Exception geworfen, soll folgende Fehlermeldung ausgegeben und im entsprechenden Objekt gespeichert werden:

    Fataler Fehler aufgetreten.

  4. 4.

    Illustrieren Sie an folgender Skizze, wie eine Exception \(\ldots \)

    figure l
    • \(\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. 5.

    Welche Ausgabe generiert die main Methode in der Klasse ExceptionTest mit \(\ldots \)

    1. 1.

      \(\ldots \) index = -1.

    2. 2.

      \(\ldots \) index = 1.

    3. 3.

      \(\ldots \) index = 2.

    4. 4.

      \(\ldots \) index = 5.

      figure m

    Die Klassen Review, IllegalIndexException und NegativeIndexException sind auf der nächsten Seite definiert.

  6. 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. 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

    figure o
  2. 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

Reprints and permissions

Copyright information

© 2020 Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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

Publish with us

Policies and ethics