throws und try catch

H

Heyoka955

Gast
hallo ich hätte eine frage, wann soll man try catch verwenden und wann throw thrwos? also was ist der unterschied zwischen den beiden bei der fehlerbehandlung
 

mihe7

Top Contributor
try-catch, wenn Du eine Exception "erwartest".
throw, wenn Du eine Exception wirfst.
throws, wenn Du in der Signatur der Methode angibst, dass sie eine Exception wirft

Java:
public int read() throws IOException {
    throw new IOException();
}
public void testRead() {
    try {
        read();
    } catch (IOException ex) {
        System.out.println("von read ausgelöste IOException wurde abgefangen");
    }
 
H

Heyoka955

Gast
try-catch, wenn Du eine Exception "erwartest".
throw, wenn Du eine Exception wirfst.
throws, wenn Du in der Signatur der Methode angibst, dass sie eine Exception wirft

Java:
public int read() throws IOException {
    throw new IOException();
}
public void testRead() {
    try {
        read();
    } catch (IOException ex) {
        System.out.println("von read ausgelöste IOException wurde abgefangen");
    }
das heßt man sollte wenn man eine fehlerbehandlung machen möchte, sollte man am besten throw und try catch machen denn falls das Programm nicht weiß wie man diese zu behandeln hat dann ist throw eine weitere folge um den fehler zu behandeln.
 

mihe7

Top Contributor
Das Schlüsselwort throw "wirft" eine Exception (löst also eine Ausnahme aus). Wird die Ausnahme nirgends behandelt, schmiert Dein Programm ab. Für das Abfangen einer Ausnahme verwendest Du try-catch. Die Behandlung der Ausnahme findet dabei im catch-Block statt.
 

Thallius

Top Contributor
Ich glaube du hast da was Mißverstanden Mihe. Ich denke er meint das throws hinter der Methoden Deklaration, welches eine Exception an die aufrufende Methode zurückgibt.

Gruß

Claus
 

Neumi5694

Top Contributor
das heßt man sollte wenn man eine fehlerbehandlung machen möchte, sollte man am besten throw und try catch machen denn falls das Programm nicht weiß wie man diese zu behandeln hat dann ist throw eine weitere folge um den fehler zu behandeln.

try catch verwendest du dort, wo du den Fehler erwartest und darauf reagieren willst. Du KANNST den Fehler danach nochmal werfen, wenn du z.B. nur eine Logzeile ausgeben willst, die Behandlung aber weiter außen durchführen möchtest.

throw verwendest du dann, wenn du selbst die Exception erzeugen willst (z.B. "unzulässiger Parameter für diese Methode").

throws erlaubt deiner Methode, zu erwartende Exceptions (z.B. beim Dateizugriff) nicht selbst zu behandeln, sondern nach außen weiterzuleiten, in der Hoffnung, dass dort jemand darauf reagiert.

ps: Bei einem nicht behandelten Fehler schmiert nicht zwingend das gesamte Programm ab, sondern nur der betreffende Thread. Du wirst das vor allem in Verbindung mit GUIs feststellen. Bei einem Fehler, der durch das Klicken eins Buttons ausgelöst wird, wird das Programm trotzdem weiterlaufen, nur eben nicht das, was durch den Klick ausgelöst wurde.
 
H

Heyoka955

Gast
try catch verwendest du dort, wo du den Fehler erwartest und darauf reagieren willst. Du KANNST den Fehler danach nochmal werfen, wenn du z.B. nur eine Logzeile ausgeben willst, die Behandlung aber weiter außen durchführen möchtest.

throw verwendest du dann, wenn du selbst die Exception erzeugen willst (z.B. "unzulässiger Parameter für diese Methode").

throws erlaubt deiner Methode, zu erwartende Exceptions (z.B. beim Dateizugriff) nicht selbst zu behandeln, sondern nach außen weiterzuleiten, in der Hoffnung, dass dort jemand darauf reagiert.

ps: Bei einem nicht behandelten Fehler schmiert nicht zwingend das gesamte Programm ab, sondern nur der betreffende Thread. Du wirst das vor allem in Verbindung mit GUIs feststellen. Bei einem Fehler, der durch das Klicken eins Buttons ausgelöst wird, wird das Programm trotzdem weiterlaufen, nur eben nicht das, was durch den Klick ausgelöst wurde.
aber wieso gibt es in try blöcken Methoden aufrufe worin Methoden ein throw implementieren.
also was ist der zusammenhang mit den zusammen?
zbs try{ System.out.print(a.teiledurch0); }



public static int teiledurch0 throws Expection


was heißt das?
 

Neumi5694

Top Contributor
public static int teiledurch0 throws Expection
was heißt das?
Das sagt dem Compiler, dass diese Methode eine Exception werfen kann. D.h. die aufrufende Methode muss sich also darum kümmern.
Der Compiler wird also verlangen, dass du die Methode teiledurch0() nur innerhalb eines try-Blocks verwenden kannst, der die Exception per catch behandelt. Wenn du aber willst, dass der Fehler nicht abgefangen wird, sondern nach außen weitergeleitet wird, dann muss die aufrufende Methode ihrerseits wieder throws Exception im Header stehen haben (siehe Vorpost).

Exceptions können natürlich auch unvorhersehbar ohne throws im Methoden-Header entstehen, klar (bestes Beispiel: Die allseits geliebte NullpointerException). Die throws-Klausel hilft dir dabei, vorhersehbare Exceptions besser im Code behandeln zu können.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Exceptionbehandlung --> catch/throws Java Basics - Anfänger-Themen 11
StrikeTom Ein paar(2) Fragen zu throws und try + catch Java Basics - Anfänger-Themen 6
BATMAN_2008 Jackson adding additional fields to JSON throws java.util.concurrent.CompletionException: Java Basics - Anfänger-Themen 2
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
S throws bei Methoden Java Basics - Anfänger-Themen 4
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
MiMa JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4
M [JTable] getValue throws ArrayOutOfBoundException Java Basics - Anfänger-Themen 1
M Throws Anweisung innerhalb eines Methodenkopfes unklar Java Basics - Anfänger-Themen 4
M Exceptions per throws oder try Java Basics - Anfänger-Themen 4
A Throws und throw.... Java Basics - Anfänger-Themen 7
K PROBLEM mit throws Java Basics - Anfänger-Themen 11
M Ändert ein 'throws Exception' die Signatur einer Methode? Java Basics - Anfänger-Themen 3
C throws Exception Java Basics - Anfänger-Themen 2
J Exception weiterleiten mit throws Java Basics - Anfänger-Themen 2
J Java GUI Problem (throws.) Java Basics - Anfänger-Themen 3
kb statische methoden und throws exception Java Basics - Anfänger-Themen 2
S Exception is not compatible with throws clause in DefaultHan Java Basics - Anfänger-Themen 3
T Auf "throws" verzichten! Java Basics - Anfänger-Themen 11
E Methodendeklaration mit throws wird nich behandelt Java Basics - Anfänger-Themen 3
C Methodenaufruf mit throws IOException Java Basics - Anfänger-Themen 2
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
missy72 Catch Blöcke zusammenfassen Java Basics - Anfänger-Themen 6
Ostkreuz wie geht der catch? Java Basics - Anfänger-Themen 3
D try/catch-Block bei for-Schleife Java Basics - Anfänger-Themen 14
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
districon Try - Catch Java Basics - Anfänger-Themen 8
JavaNoobi Try and Catch und übergabe von Objekten Java Basics - Anfänger-Themen 2
Y Wie kann ich die Variable in der Try Catch returnen? Java Basics - Anfänger-Themen 3
B Try-Catch Block Java Basics - Anfänger-Themen 3
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
B try catch finally Java Basics - Anfänger-Themen 2
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
I Try-Catch innerhalb eines Catchblocks Java Basics - Anfänger-Themen 1
J Endlosschleife bei Try-Catch? Java Basics - Anfänger-Themen 3
K JOptionPane/catch/try/finally/if Java Basics - Anfänger-Themen 9
V InputMismatchException (Try and catch) Java Basics - Anfänger-Themen 10
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
J Erste Schritte catch Exeption Parameter Java Basics - Anfänger-Themen 7
TheMenox Try and Catch Java Basics - Anfänger-Themen 12
J Try Catch Java Basics - Anfänger-Themen 6
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
J Code in Try-Catch Block wird nicht komplett ausgeführt Java Basics - Anfänger-Themen 5
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
A Nicht zu findender Fehler in einem try/catch Block Java Basics - Anfänger-Themen 6
F try/catch Ausführungen ? Java Basics - Anfänger-Themen 3
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
Z Catch & Exceptions Java Basics - Anfänger-Themen 4
I Exception try-catch Java Basics - Anfänger-Themen 1
E Buchstaben verhindern / Try & Catch Block Java Basics - Anfänger-Themen 3
F try/catch - (else) Java Basics - Anfänger-Themen 11
L Warum ist der catch-Block nicht erreichbar ? Java Basics - Anfänger-Themen 8
C Problem mit try-catch in Schleife Java Basics - Anfänger-Themen 15
R Exceptions (try/catch) Java Basics - Anfänger-Themen 63
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
J Methoden try / catch exception Java Basics - Anfänger-Themen 5
S 'continue' in catch- und if-blöcken Java Basics - Anfänger-Themen 2
B Erste Schritte try-catch-Klauseln, überprüfte Ausnahmen Java Basics - Anfänger-Themen 4
D Erste Schritte Warum try-catch für FileWriter Java Basics - Anfänger-Themen 5
S try-catch-finally-Problem Java Basics - Anfänger-Themen 10
xehpuk Compiler-Fehler final Variable in try-catch Wert zuweisen Java Basics - Anfänger-Themen 8
M Try und Catch Java Basics - Anfänger-Themen 5
B Fehler mit try + catch verhindern Java Basics - Anfänger-Themen 8
N Catch Block in Try erzwingen Java Basics - Anfänger-Themen 14
E Problem mit for schleife/ try-catch block Java Basics - Anfänger-Themen 7
B Variablen Variablen in try / catch "public" machen? Java Basics - Anfänger-Themen 3
C Wiederholung von try-catch Java Basics - Anfänger-Themen 3
N try and catch block in finally Java Basics - Anfänger-Themen 8
M exception catch falsch? Java Basics - Anfänger-Themen 11
S catch Exception erklären Java Basics - Anfänger-Themen 2
C Variable in try/catch Java Basics - Anfänger-Themen 10
B Try and Catch Java Basics - Anfänger-Themen 6
J try und catch Java Basics - Anfänger-Themen 7
G Exceptionfreie Anweisungen in try-catch-Blöcke, Java Basics - Anfänger-Themen 6
B Exception vor catch Block definieren Java Basics - Anfänger-Themen 9
M Frage zu try ... catch Java Basics - Anfänger-Themen 9
S NumberFormatException , mit Try/Catch? Java Basics - Anfänger-Themen 7
B Try/catch Java Basics - Anfänger-Themen 11
M Try & Catch Java Basics - Anfänger-Themen 7
V Was ist ein Try-Catch Block Java Basics - Anfänger-Themen 4
M Nach catch mit der schleife weitermachen Java Basics - Anfänger-Themen 9
M try-catch, call-by-reference, Streaming und Strings Java Basics - Anfänger-Themen 10
S sauberer Stil von return Wert (try, catch, finally) Java Basics - Anfänger-Themen 9
S try-catch Java Basics - Anfänger-Themen 10
Tandibur Server führt "try-catch" nicht aus Java Basics - Anfänger-Themen 6
H Falsche Eingabe über try-catch abfangen Java Basics - Anfänger-Themen 2
I Frage zu Try - Catch - Finally Java Basics - Anfänger-Themen 10
Daniel_L Verwendung von try und catch bei exceptions Java Basics - Anfänger-Themen 7
GambaJo Wann try.catch nutzen? Java Basics - Anfänger-Themen 11
H try catch Java Basics - Anfänger-Themen 4
I double-Variable außerhalb des Try-Catch-Blocks nicht gültig Java Basics - Anfänger-Themen 2
D Catch wiederholt sich ständig Java Basics - Anfänger-Themen 2
T try-catch-finally Java Basics - Anfänger-Themen 8
G Anwendung von try-catch Java Basics - Anfänger-Themen 10
G try. catch Verwendung Java Basics - Anfänger-Themen 11
M Try-Catch-Problem Java Basics - Anfänger-Themen 4
G habe ein Catch problem Java Basics - Anfänger-Themen 7
C Nach Catch-Klausel Programm weiter laufen lassen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben