Frage zu Exception-Handling

glitsch

Aktives Mitglied
Hi zusammen

Was beudetet nach der Methodendefinition: "throws myException". Also in etwas so:

Code:
public ... (...) throws myException ...

Danke für die Hilfe! 🙂
 
Wenn ein bestimmter Fehler auftaucht wird die Exception mit Fehlermeldung geworfen.

Bsp.: Du möchtest in eine Datei schreiben. Es können verschiedene Fehler auftreten:
FileNotFounndException - Die Datei konnte nicht gefunden ewrden / existiert nicht.
IOException - In die Datei konnte nicht geschrieben werden, da sie vermutlich schreibgeschützt ist.

Wenn du eine Methode aufrufst die eine Exception throws musst du sie mit try{}catch(); abfangen (google)

mfg
BH16
 
Wird "throws myException" zwingend benötigt für die formale Definition des EH? Dann ist das sowas wie reine syntaktische (Java-)Formalität?

Besten Dank. 🙂
 
Wird "throws myException" zwingend benötigt für die formale Definition des EH? Dann ist das sowas wie reine syntaktische (Java-)Formalität?
Immer, wenn innerhalb einer Methode ein Fehler auftritt, der dort nicht selbst gelöst werden kann, kann die Methode ihren Aufrufer über diesen Fehler mittels werfen einer Exception informieren. Das ist in Java der Standardweg, Fehler zu melden. So etwas wie spezielle return-Codes für Fehler macht man in Java nicht (außer bei System.exit).

Eine Methode, die sowas machen möchte braucht nur dann die throws-Klausel, wenn sie eine sog. checked-Exception schmeißen will. Dies sind allesamt Unterklassen von Exception und müssen vom Aufrufer in einem try-catch-Block behandelt oder weitergeworfen werden. Wenn sie sog. unchecked Exceptions (Unterklassen von RuntimeException) schmeißen möchte, braucht sie die throws-Klausel nicht. Zur Unterscheidung, siehe google.
 
Es gibt zwei Arten von Exceptions(Ausnahmefehler) , checked und unchecked.
Checked werden durch nicht ganz logische Fehler ausgelöst, die man "nicht direkt" beheben kann.
Unchecked werden durch logische Fehler ausgelöst, die man üblicherweise "direkt" beheben kann.

Aber besser ist es den Link im zweiten Post durchzulesen.
 

Zurück
Oben