Exceptions

Neue Frage »

Auf diesen Beitrag antworten »
Erstsemestler Exceptions

Meine Frage:
Eine weitere Frage zu Exceptions :-)

Es gibt ja die Schlüsselwört try und catch. Wenn ich den bei catch den Ausdruck Exception e habe, was bedeutet dieser genau?

Meine Ideen:
Besten Dank :-)
 
Auf diesen Beitrag antworten »
eulerscheZahl

Exception ist ein Datentyp und e der Name der Variable. Ähnlich wie for (int i
Über e kommst du dann an nähere Informationen, z.B. eine Beschreibung mit e.toString()
Auf diesen Beitrag antworten »
Erstsemestler

Dankeschön :-)
Auf diesen Beitrag antworten »
Erstsemestler

Ich muss noch mal an dieses Thema anknüpfen, da irgendwo noch ein Fehler im Code ist :-) Es soll eine Exception geworfen werden, sobald die Gleichung (result in meinem Fall) 0 ergibt.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
public class Polstelle
{
	public static void main (String[]args)
	{
		ergebnis(1.0F);
	}

	public static void ergebnis (float x)
	{
		float result=0;
		try
		{
			result = ((x*x*x)-(5*(x*x))-x+5);
			System.out.println(result);
		}
		catch (Exception e)
		{
			System.out.println("Falscher Wert");
		}
		
	}
}



Allerdings bekomme ich immer das Ergebnis und nicht die Fehlermeldung böse (Wert wo 0 ergibt wäre zum Beispiel die 1).
 
Auf diesen Beitrag antworten »
eulerscheZahl

In der Funktion ergebnis musst du die Ausnahme ja erst mal werfen.
code:
1:
2:
3:
4:
5:
6:
7:
public static float ergebnis(float x) throws IllegalAccessException {
	float result = x * x * x - 5 * x * x - x + 5;
	if (result == 0) {
		throw new IllegalAccessException("Nenner ist 0");
	}
	return result;
}


gefangen wird sie dann wo anders:
code:
1:
2:
3:
4:
5:
6:
7:
public static void main(String[] args) {
	try {
		ergebnis(-1);
	} catch (IllegalAccessException e) {
		e.printStackTrace();
	}
}

Und die anderen Nullstellen sind -1 und 5 smile
Auf diesen Beitrag antworten »
Erstsemestler

Danke Dir :-) Daumen hoch Daumen hoch
Auf diesen Beitrag antworten »
Erstsemester

Sehe ich das richtig, dass die Exceptions immer aus dem "Dreierblock" bestehen --> sprich throw s Exception ; throw new Exception () und try-catch- Anweisung?
Auf diesen Beitrag antworten »
eulerscheZahl

Das try-catch kannst du noch um ein finally erweitern.
Auf diesen Beitrag antworten »
Erstsemester

Ist finally das Gleiche wie final, sprich, dass eine Instanzvariable nach ihrer Initialisierung nicht mehr verändert werden kann (was ja im catch - Block logisch wäre?)
Auf diesen Beitrag antworten »
eulerscheZahl

Nein. Finally wird nach einem try-catch immer angearbeitet. Auch wenn du im catch eine neue Exception wirfst und somit die Methode verlässt. Die Ausführung ist auch unanhängig davon, ob eine Exception auftrat und ob sie gefangen wurde oder nicht.

Mehr hier: javainsel
Auf diesen Beitrag antworten »
Erstsemester

Achso, dankeschön :-)
Auf diesen Beitrag antworten »
Erstsemester

Hey Leute,

warum akzeptiert mir der Compiler in Zeile 24 mein nenner(-1) im try - Block nicht? böse böse böse

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
class Exceptions
{
	int zaehler = 5;
	int nenner = 0; 
	public void nuller (int nenner) throws IllegalAccessException
	{
		int result = zaehler/nenner;		
		if (nenner==0)
		{
			throw new IllegalAccessException("Nenner ist gleich 0");
		}
		System.out.println(result);
	}

}


public class Methodentest
{
	public static void main (String[]args)
	{
		try 
		{
			nenner(-1);
		}
		catch (Exception e)
		{
			System.out.println(e.toString());	
		}
	}
	
}



Vielen Dank für Eure Antworten :-)
Auf diesen Beitrag antworten »
eulerscheZahl

Ist nenner denn eine Funktion?
Auf diesen Beitrag antworten »
Erstsemester

Sorry, da gehört nuller(-1) hin.
Auf diesen Beitrag antworten »
eulerscheZahl

Dann musst du entweder die Funktion static machen und den Klassennamen angeben, oder über eine Instanz darauf zugreifen.
Auf diesen Beitrag antworten »
Erstsemester

Hat geklappt, vielen Dank :-)
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »