try-catch-throw

Status
Nicht offen für weitere Antworten.

exorzist

Mitglied
kann mir bitte jemand mit einem ganz simplen beispiel die fehlerbehandlungsroutinenen "try-catch" und "throw" erklären? ich weiss zwar im prinzip was sie machen und wie sie funktionieren, aber so 100%ig sitzt es noch nicht. danke!
 

Samurider

Aktives Mitglied
Code:
private void lala() {
  try {
    test();
  } catch (Exception e) {
    System.out.println("Da ist wohl ein Fehler aufgetreten");
  }
}
          
private void test() throws Exception {
  throw new Exception("Mööp");
}
 

exorzist

Mitglied
wer lesen kann ist klar im vorteil
ich wollte eine erklärung, keinen code, wie ich das zu schreiben habe, weiss ich selbst :)
 

Stefan1200

Top Contributor
Also der Profie bin ich nicht, aber ich versuche das mal mit ganz simplen Worten zu erklären:

In der Programmierung von Software kann in der Software immer ein Moment eintreten, in dem was passiert, was nicht direkt vorhersehbar ist. Zum Beispiel das in einem Textfeld, in dem eine Zahl eingegeben werden soll, vom Benutzer (versehentlich) ein Buchstabe eintippt, oder in eine Datei geschrieben werden soll, die Schreibgeschützt ist.
Wenn so ein Fall eintritt, wird das Problem mit dem Abfangen der Fehler, auch als Exception bekannt, kontrolliert gelöst oder zumindest sollte dann eine Fehlermeldung ausgegeben werden.

Ich hoffe das hilft dir etwas.
 

Samurider

Aktives Mitglied
exorzist hat gesagt.:
wer lesen kann ist klar im vorteil
ich wollte eine erklärung, keinen code, wie ich das zu schreiben habe, weiss ich selbst :)

Hm... dachte, das wäre selbst-erklärend :p

Also, wie Stefan1200 schon geschrieben hat, kann es fast immer und fast über zu Fehlern kommen.
Diese Ecxeptions werden irgendwo ausgelöst (sozusagen 'geworfen') und an anderer Stelle sollten sie wieder 'gefangen' werden. Wenn irgendwo ein Exception nicht gefangen wird, kommt es zu einem Abbruch (Unhandled Exception), mit dem der Benutzer (der wahrscheinlich keine Ahnung von Java hat / haben will) recht wenig anfangen kann.
Meine o.a. Methode test() wirft u.U. eine Exception (ok, sie wirft immer eine *g*), deshalb muss das mit "throws Exception" nach aussen bekannt gemacht werden.
Innerhalb von lala(), wo test() aufgerufen wird, ist nun ein try()-catch()-Block, der es ermöglicht, die Exception abzufangen und etwas anderes danach zu tun. (Hinweis an den User/Alternative Abläufe/...)

Gruß,
JT
 

exorzist

Mitglied
vielen dank erstmal für eure hilfe.
langsam kommt licht ins dunkel.

könnte ich evtl. trotzdem noch ein konkretes beispiel haben? nehmen wir mal das obige beispiel mit dem textfeld. es sollen nur buchstaben angenommen werden und bei zahlen tritt dann eine exception auf. wie sähe der code aus?

danke
 

Stefan1200

Top Contributor
exorzist hat gesagt.:
nehmen wir mal das obige beispiel mit dem textfeld. es sollen nur buchstaben angenommen werden und bei zahlen tritt dann eine exception auf. wie sähe der code aus?

Eher anders herum. Mal angenommen, du hast ein Textfeld, in das eine Zahl geschrieben werden soll.
Jetzt schreibt aber jemand ein Buchstabe herein, dann tritt beim Umwandeln in eine Zahl eine Exception (Fehler) auf.

Code:
String tmp = textfeld.getText();
int zahl = Integer.parseInt(tmp);

Hier würde dann in der zweiten Zeile eine Exception, genauer NumberFormatException, auftreten.
Das abfangen würde dann so gehen:

Code:
String tmp = textfeld.getText();
try
{
    int zahl = Integer.parseInt(tmp);
}
catch (NumberFormatException e)
{
    System.out.println("Hey, nur Zahlen eingeben!");
}
 

exorzist

Mitglied
danke, jetzt hab ichs kapiert, nur nehmen wir mal an, ich möchte es doch umgekehrt machen, also nur buchstaben, keine zahlen. wie sähe nun das aus?
danke!
 

el_barto

Bekanntes Mitglied
tja, da sich in einem textfeld nun mal ein string befindet und in einem string alles mögliche vorkommt, würde dir nichts anderes übrig bleiben, als den string auseinander zu nehmen und zu analysieren.
 

exorzist

Mitglied
ok, verstanden, aber in dem fall würde ein try() catch() block keinen sinn machen, oder? weil ich ja selbst bereits überprüfe und entsprechend den fall behandle, richtig?
 
H

Hai

Gast
und wie ist das nun mit "throws exception" in diesem vorigen Beispiel?

Bzw. möchte ich den Unterschied wissen zwischen try-catch und throws...
 

Stefan1200

Top Contributor
Hai hat gesagt.:
Bzw. möchte ich den Unterschied wissen zwischen try-catch und throws...

Das ist relativ einfach erklärt.
Nehmen wir mal an, du schreibst dir eine Methode, die wie oben Beschrieben den String in einen
Integer umwandelt. Nun kann ja wie oben beschrieben ein NumberFormatException auftreten.
Nun möchtest du aber den Fehler nicht in dieser Methode behandeln, also auf den Fehler reagieren, sondern in der Methode, wo du deine Umwandlungsmethode aufrufst, lässt du try catch weg, und schreibst direkt vor der Klammer { der Methode einfach throws NumberFormatException. In diesem Fall bekommt der Aufrufer der Methode den Fehler zurück, und brauchst dich erst dort mit try catch darum kümmern, das dein Programm darauf entsprechend reagiert.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
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 throws und try catch Java Basics - Anfänger-Themen 8
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
F Exceptionbehandlung --> catch/throws Java Basics - Anfänger-Themen 11
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
StrikeTom Ein paar(2) Fragen zu throws und try + 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
B try & catch Problem mit Exception bzw String.split() Java Basics - Anfänger-Themen 5
C Frage zu try - catch (saubere Lösung?) Java Basics - Anfänger-Themen 3
G Bei catch beenden Java Basics - Anfänger-Themen 7
U catch mit finally Java Basics - Anfänger-Themen 5
C Exceptions, try, catch --> Frage Java Basics - Anfänger-Themen 7
J Try-Catch-Frage Java Basics - Anfänger-Themen 13
B catch exception funktioniert nicht! Java Basics - Anfänger-Themen 14
D Frage try and catch Java Basics - Anfänger-Themen 7
ven000m try catch - was muss bei catch rein Java Basics - Anfänger-Themen 28
G Datenbank - catch Java Basics - Anfänger-Themen 2
H Konstruktor in Methode fremder Klasse: try-catch-Problem Java Basics - Anfänger-Themen 4
M return und try-catch Java Basics - Anfänger-Themen 6
M Try . catch erzwungen? Java Basics - Anfänger-Themen 11
F eigene Exception aus try-catch werfen Java Basics - Anfänger-Themen 10
A Syntaxproblem mit try und catch Java Basics - Anfänger-Themen 3
Silver-Blue fragen zu Swing und catch Exceptions Java Basics - Anfänger-Themen 2
G return fehler bei try catch Java Basics - Anfänger-Themen 8
H try und catch Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben