# Exception weiterleiten mit throws



## jiim (13. September 2007)

Hallo zusammen,

ich hätte eine kleine Frage zu der Bearbeitung von Exceptions. Wir hatten dieses Thema im Studium. 

Also erstens gibt es 2 arten von exception, die unchecked, welche nicht unbedingt bearbeitet werden müssen, und die checked exceptions, welche zwingend bearbeitet werden müssen. Bei den checked exceptions, gibt es 2 bearbeitungsmethoden:
1. ich fange die exception sofort ab mit der try-catch methode, oder
2. ich leite die exception an eine Ebene höher weiter.

Nun ich habe versucht ein kleines programm zu schreiben und einen fehler zu erzwingen, diesen aber dann mit throws weiterzuleiten. 
In der konsole erhalte ich aber nun den gleichen fehler, wie wenn ich gar keine fehlerbehandlung benutzt hätte und das programm stürzt ab..

Was bringt es also genau eine throws im programm einzuführen?

vielen dank


----------



## torax13 (14. September 2007)

Kannst Du ein Beispiel (code) Posten?

Gruß

PS: gehört eigentlich nicht in JEE rein, oder?


----------



## zeja (15. September 2007)

Throws kann man benutzen wenn man zum Beispiel eine API für die externe Benutzung anbieten möchte. Tritt ein Fehler auf schreibt man diesen einerseits in ein Log heraus, leitet diesen dann aber auch noch mit throws weiter damit die Anwendung die diese API eventuell benutzt auch über diesen Fehler informiert wird.

Anderes Beispiel wäre bei Datenbanken: Kann eine bestimmte Aktion auf einer Datenbank nicht durchgeführt werden müssen im Fehlerfall eventuell auch andere Aktionen rückgängig gemacht werden. Dies führt man im catch-Block einerseits durch, informiert dann aber mit einem throws auch den Rest der Anwendung dass ein Fehler aufgetreten ist.


----------



## Thomas Darimont (15. September 2007)

Hallo,

beim Auftreten einer Excpetion zu loggen und dann noch zu throwen ist ein Antipattern:
http://today.java.net/pub/a/today/2006/04/06/exception-handling-antipatterns.html

Das führt nämlich dazu das die Logs extrem aufgebläht werden, da x-mal die selbe Exception gelogged wird, was nachher mehr verwirrt als nützt.

Gruß Tom


----------

