Catch Block in Try erzwingen

NT2005

Mitglied
Hallo Community,

Ich habe eine wohl sicherlich abwegige Frage und zwar würde ich gerne unter einer bestimmten Bedingung einen Fehler im try produzieren damit ich auf jedenfall in den catch lande.

Java:
try {
String name = ReadLine();

// Hier sind noch andere Methoden drinnen, die Fehler produzieren können...

if(line.equals("bla")) {
// mach das
} else if(line.equals("quark") {
// mach jenes
} else {
// Hier soll ein fehler vorgetäucht werden
// da dieser in der Catch-Methode behandlet werden soll
}

} catch (Exception e) {
//Error handling
....
System.out.println("....")
}

Wie kann ich einen Error vortäuchen?
 

Volvagia

Top Contributor
Theoretisch ginge auch
Java:
Object obj = null;
obj.hashCode();

Nicht so schön aber irgendwie lustiger. (Wenn man bei soetwas von "schön" sprechen kann.)
Wird dir aber wohl eine Warnung generieren.

Wenn du einen Block willst in dem immer gesprungen wird kannst du einen finally anhängen.
 

beastofchaos

Bekanntes Mitglied
Wieso willt du daraus ein Error machen? Anstatt das direkt in dem else{ }- Block zu schreiben? Den Unterschied sieht man nur als Programmierer, aber das Programm verhält sich schließlich gleich, wobei eine Exception absichtlich zu werfen mir doch sehr unschön scheint :D
Wenn du das machst, weil das öfters aufgerufen wird, dann mach halt ne extra Methode ;) (aber ich kann ja deinen Willen leider nicht lenken^^)
 

navas

Mitglied
Exceptions werden immer absichtlich geworfen ;) Aber warum man eine Exception werfen sollte, welche man selber wieder in der gleichen Methode abfängt... das ist wirklich etwas sinnfrei :D
Nicht unbedingt. Unter folgenden Umständen macht es Sinn:
- Grössere Codeblock, try/catch-Block darum
- Der Code nach einer geworfenen Exception soll nicht ausgeführt werden und im Catch-Block soll immer dasselbe ausgeführt werden (z.B. Fehlermeldung auf GUI anzeigen)
 

tfa

Top Contributor
Nicht unbedingt. Unter folgenden Umständen macht es Sinn:
- Grössere Codeblock, try/catch-Block darum
- Der Code nach einer geworfenen Exception soll nicht ausgeführt werden und im Catch-Block soll immer dasselbe ausgeführt werden (z.B. Fehlermeldung auf GUI anzeigen)
Klingt irgendwie unsauber. Benutzt du hier Exceptions um den Programmfluss zu steuern?
 
T

Tomate_Salat

Gast
Wenn jz in deinem Code dummerweise eine Exception fliegt, wo du keine erwartet hättest, dann landest du auch im Catch-Block und dein Codefluss stimmt nicht. Wie bereits gesagt: entweder extra Methode oder den Code in den else-Teil schreiben.

Exceptions schmeist du dann, wenn du an der aktuellen Stelle die Problematik nicht behandeln kannst(willst). Der Programmierer, der später deine Methode anwendet, muss sich dann eben darum kümmern, diese richtig zu behandeln.
 

navas

Mitglied
Klingt irgendwie unsauber. Benutzt du hier Exceptions um den Programmfluss zu steuern?
Wenn ich irgendwo einen Fehler werfe, dann passiert gar nichts, nur die Fehlermeldung wird angezeigt
Java:
try{
if({Ausdruck der false ergibt}){
    throw new IllegalArgumentException("Fehler");
}

if({Ausdruck der false ergibt}){
    throw new IllegalArgumentException("Fehler");
}
...

//query ausführen
} catch (IllegalArgumentException e) {
     MessageUtil.addErrorString(req, e.getMessage());
}

In diesem Code wird sonst nirgends eine IllegalArgumentException() geworfen. Der Code ist komplexer als hier dargestellt, d.h. mehrere if/else verschachtelt.
 

tfa

Top Contributor
Ein klassisches Beispiel, was man mit Exceptions nicht machen sollte.

In diesem Code wird sonst nirgends eine IllegalArgumentException() geworfen.
Da kann man sich nie so sicher sein. Wenn nicht jetzt, dann vielleicht in 3 Monaten...

Der Code ist komplexer als hier dargestellt, d.h. mehrere if/else verschachtelt.
Das ist von vorn herein schlecht. "Größere Codeblöcke" soll man vermeiden -- besonders, wenn man viele
verschachtelte Bedingungen hat. Spalte das in mehrere kleine Methoden auf. z.B. eine Check-Methode, die
die Bedingungen überprüft und ggf. eine Meldung ausgibt und eine Methode die ansonsten die Berechnung durchführt.
Dann brauchst du keine unübersichtliche Exception-Werferei für den Kontrollfluss.
 
S

SlaterB

Gast
in wirklich komplexen Ebenen kann man Exceptions durchaus einsetzen,
ähnlich wie Hibernate bei einer SQLException nichts anzufangen weiß

verschiedene Klassen, verschachtelte Methodenaufrufe sollten es aber schon sein, nicht nur innerhalb einer Methode

was ich eigentlich anmerken wollte: gegen falsche Interpretation hilft eine eigene Exception-Klasse, AbortException oder ähnlich
 
T

Tomate_Salat

Gast
@navas:
Ein solches Konstrukt ist gefährlich und es kann schnell außer Kontrolle geraten. Dafür reicht eine Methode, die diese Exception werfen kann.
 

NT2005

Mitglied
Danke für die vielen Antworten, habe heute in der Uni darüber nachgedacht und eine wohl eindeutig bessere Methode über finally mit Bedingung gefunden. ;) Danke dennoch für die angenehme Diskussion. ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D try/catch-Block bei for-Schleife Java Basics - Anfänger-Themen 14
B Try-Catch Block Java Basics - Anfänger-Themen 3
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
J Code in Try-Catch Block wird nicht komplett ausgeführt Java Basics - Anfänger-Themen 5
A Nicht zu findender Fehler in einem try/catch Block Java Basics - Anfänger-Themen 6
E Buchstaben verhindern / Try & Catch Block Java Basics - Anfänger-Themen 3
L Warum ist der catch-Block nicht erreichbar ? Java Basics - Anfänger-Themen 8
E Problem mit for schleife/ try-catch block Java Basics - Anfänger-Themen 7
N try and catch block in finally Java Basics - Anfänger-Themen 8
B Exception vor catch Block definieren Java Basics - Anfänger-Themen 9
V Was ist ein Try-Catch Block Java Basics - Anfänger-Themen 4
M Exception->mehrere Exceptions in einem Catch Block behand Java Basics - Anfänger-Themen 4
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 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 JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
B try catch finally Java Basics - Anfänger-Themen 2
H throws und try catch Java Basics - Anfänger-Themen 8
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 Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
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
F try/catch - (else) Java Basics - Anfänger-Themen 11
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
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
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
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
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