Exception funktioniert nicht

Status
Nicht offen für weitere Antworten.

DDHP

Mitglied
Hey Community,

ich mache gerade für mein Fernstudium eine Hausaufgabe und ich brauche mal unbedingt nen tipp!

Es hackt an einer Methode.

Ich möchte gerne, dass die catch Anweisung IllegalArgument Exception aufgerufen wird, wenn der Wert 0 eingegeben wird.

Aber die catch Anweisung wird nie Ausgeführt.? Wo liegt mein Fehler habt ihr ne Ahnung?

Danke für Eure Hilfe.

Code:
/* ################################
 * Die Klasse für den Wein
 * Jetzt mit Plausibilitätsprüfung  
 ##################################*/

public class Wein {
	private int alter;
	private double grundpreis;
	private double preisProFlasche;
	
	//der Standard-Konstruktor
	public Wein() {
		//er ruft über this() den Konstruktor mit den beiden Parametern auf
		//und übergibt die Standardwerte
		this(1, 10);
	}
	
	//der Konstruktor setzt das Alter
	//der Preis erhält einen Standard-Wert
	public Wein(int alter) {
		//er ruft ebenfalls über this den Konstruktor mit den beiden Parametern auf
		this(alter, 10);
	}
	
	//der Konstruktor setzt den Preis
	//das Alter erhält einen Standard-Wert
	public Wein(double grundpreis) {
		//und dieser Konstruktor ruft auch den Konstruktor mit den beiden Parametern auf
		this(1, grundpreis);
	}
	
	//der Konstruktor setzt das Alter und den Grundpreis
	//er enthält jetzt Plausibilitätsprüfungen
	public Wein(int alter, double grundpreis) {
		//die Plausibilitätsprüfung für das Alter
		try {
			if (alter > 0)
			this.alter = alter;
			System.out.println("wert groesser null");}
		//sonst den Standardwert 1 setzen
		catch (IllegalArgumentException e){
				System.out.println("Fehler");
			}
		//und auch für den Preis
		if (grundpreis > 9)
			this.grundpreis = grundpreis;
		else
			this.grundpreis = 10;
	}
	
	//die Methode berechnet den Preis pro Flasche
	public void preisBerechnen() {
		preisProFlasche = alter * grundpreis;
	}
	
	//die Methode liefert den Preis pro Flasche
	public double getPreisProFlasche() {
		preisBerechnen();
		return preisProFlasche;
	}
}





/*##############################################
 * jetzt haben die Konstruktoren der Klasse 
 * Wein Plausibilit�tspr�fungen
 ###############################################*/ 

public class Java08_05 {
	public static void main(String[] args) {
		//eine neue Instanz mit unsinnigen Werten erzeugen
		Wein flasche2 = new Wein(0,1.1);
		//den Preis ausgeben
		//er wird aus Standard-Werten berechnet, die �ber den Konstruktor gesetzt werden
		System.out.println(flasche2.getPreisProFlasche());
	}
}
 

tfa

Top Contributor
Eine Exception kann nur dann aufgefangen werden, wenn sie im try-Block geworfen wird. Und das tut sie hier nicht.
In diesem Fall brauchst du gar keine Exception, die if-Abfrage ist doch völlig ausreichend. Erweitere sie einfach um einen else-Zweig.
 

DDHP

Mitglied
Das mit dem ersetzen würd ich ja am liebsten machen, aber genau das ist die Hausaufgabe die Exception einzubauen in dieser Methode.
Wieso ist denn die Exception Anweisung nicht im try block? Sorry aber sieht die Anweisung nicht so aus:

try{

Anweisung

}

catch (Eyception e){

Anweisung

}

Danke
 

tfa

Top Contributor
Die Anweisung wirft keine Exception, also wird auch nichts gefangen. Mit Exception könnte das so aussehen:

Code:
if (alter>0) {
    this.alter=alter;
}
else {
    throw new IllegalArgumentException("illegales Alter: "+alter);
}

Diese Exception müsste man beim Aufrufen des Konstruktor fangen und behandeln. Dies gleich in der selben Methode zu tun, ist sinnlos.
 

DDHP

Mitglied
Ich habs geändert und es funktioniert...aber verstehen tu ich es leider nicht so richtig.

Wo liegt denn jetzt der unterschied zwischen try und catch und dieses throw new von Dir?

Danke für deine Hilfe!

Geht das nicht mit try catch?
 

Landei

Top Contributor
throw -> "Hey, hier läuft was schief!"
try -> "Hmmm, hier könnte eventuell was schieflaufen..."
catch -> "Ich bin Plan B: Wenn was schiefläuft, mache das hier"
finally -> "Egal was ist, das hier muss immer laufen"
 
G

Gast

Gast
lol -> "Hey, da war was lustig"
private -> "Hey, ich darf nur in meiner Klasse aufgerufen werden"
void -> "hey, ich bin nichts"
while -> "gleich versuche ich was zu iterieren"
for -> "ich auch, aber mit einer zählvariable"
if -> "ich gucke erstma nach, ob ich was ausführen darf"
else -> "wenn du nicht darfst, darf ich"
return -> "ich habe fertig"
 

DDHP

Mitglied
Das ist ja sehr nett von Euch die Aufzählung..aber genau das möchte ich ja.

Ich möchte,
try -> hey pass auf hier könnte was schief laufen kombiniert mit
catch -> hey ich bin Plan 'B'

aber mein Problem ist, dass ich die beiden nicht unter einem Hut bekomme. Es geht nur mit der throw Anweisung.

Was mache ich denn falsch?
 
G

Gast

Gast
zwischen

try -> hey pass auf hier könnte was schief laufen kombiniert mit

und

catch -> hey ich bin Plan 'B'

gehört ein

throw -> "Hey, hier läuft was schief!" .. also:

try
[hier passiert was, u.a. die prüfung ob was schief läuft]
falls es schief läuft:
throw -> "Hey, hier läuft was schief!"
catch -> hey ich bin Plan 'B'
was ist daran so schwierig
 

DDHP

Mitglied
Vielleicht bin ich auch zu.....

Aber das sollte doch eigentlich funktionieren....aber die catch Anweisung wird nie ausgeführt obwohl ich ne null eingegeben habe.

public Wein(int alter, double grundpreis) {
//die Plausibilitätsprüfung für das Alter
try {
if (alter > 0)
this.alter = alter;
System.out.println("wert groesser null");}
//sonst catch
catch (IllegalArgumentException e){
System.out.println("Fehler");
}
//und auch für den Preis
if (grundpreis > 9)
this.grundpreis = grundpreis;
else
this.grundpreis = 10;
}
 

Landei

Top Contributor
Code:
try { 
  if (alter > 0) {
     this.alter = alter; 
   } else {
       throw new IllegalArgumentException("wert groesser null");
    } 
} catch (IllegalArgumentException e) { 
  System.out.println("Fehler: " + e.getMessage()); 
}
 

DDHP

Mitglied
Super Landei das ist genau das was ich gesucht habe. Jetzt hab ich auch meinen Fehler gesehen.

Danke für deine Hilfe
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B catch exception funktioniert nicht! Java Basics - Anfänger-Themen 14
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4
P Exception werfen Java Basics - Anfänger-Themen 15
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
I OOP Was ist die "Exception Hierarchie" ? Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Mosquera Exception Java Basics - Anfänger-Themen 5
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
N Nullpointer exception Java Basics - Anfänger-Themen 4
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
S Array Grenzen-Exception Java Basics - Anfänger-Themen 11
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
G Arrays out of Bounds exception Java Basics - Anfänger-Themen 2
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
C Null Pointer Exception Java Basics - Anfänger-Themen 10
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
G Null Pointer Exception Java Basics - Anfänger-Themen 4
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
O Exception bei Parse-Vorgang Java Basics - Anfänger-Themen 17
T Exception Problem Java Basics - Anfänger-Themen 5
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
L Input/Output InputMismatch.Exception Java Basics - Anfänger-Themen 7
B Exception Liste von Liste Java Basics - Anfänger-Themen 3
D Throw Exception Java Basics - Anfänger-Themen 2
MiMa JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
M Selbstdefinierte Exception Java Basics - Anfänger-Themen 5
B Exception Throwable Java Basics - Anfänger-Themen 11
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
H Erste Schritte Exception: 0 Java Basics - Anfänger-Themen 2
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Exception nur im "Debug"-Modus und jedem 3.-5. mal Ausführen Java Basics - Anfänger-Themen 3
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
L [JFrame] Exception - woher? Java Basics - Anfänger-Themen 8
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
R "Missbrauch" von Exception zum Programmfluss Java Basics - Anfänger-Themen 1
U Exception: OutOfMemoryError Java Basics - Anfänger-Themen 11
A Int Eingabe: String mit Exception abfangen. Aber wie? Java Basics - Anfänger-Themen 3
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
V Threads Exception in Thread behandeln Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben