Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Logik » Exceptions » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (2): [1] 2 nächste » Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Exceptions
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Erstsemestler
unregistriert
Exceptions Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :-)
16.01.2015 20:04
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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()

__________________
Syntax Highlighting fürs Board (Link)
16.01.2015 20:08 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Erstsemestler
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Dankeschön :-)
16.01.2015 20:15
Erstsemestler
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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).
16.01.2015 20:39
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

__________________
Syntax Highlighting fürs Board (Link)
16.01.2015 20:52 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Erstsemestler
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke Dir :-) Daumen hoch Daumen hoch
16.01.2015 23:29
Erstsemester
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Sehe ich das richtig, dass die Exceptions immer aus dem "Dreierblock" bestehen --> sprich throw s Exception ; throw new Exception () und try-catch- Anweisung?
23.01.2015 08:44
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das try-catch kannst du noch um ein finally erweitern.

__________________
Syntax Highlighting fürs Board (Link)
23.01.2015 08:51 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Erstsemester
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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?)
23.01.2015 09:12
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

__________________
Syntax Highlighting fürs Board (Link)
23.01.2015 09:17 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Erstsemester
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Achso, dankeschön :-)
23.01.2015 09:21
Erstsemester
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :-)
26.01.2015 19:12
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ist nenner denn eine Funktion?

__________________
Syntax Highlighting fürs Board (Link)
26.01.2015 19:51 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Erstsemester
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Sorry, da gehört nuller(-1) hin.
26.01.2015 19:54
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Dann musst du entweder die Funktion static machen und den Klassennamen angeben, oder über eine Instanz darauf zugreifen.

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 26.01.2015 19:55.

26.01.2015 19:55 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Seiten (2): [1] 2 nächste » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Logik » Exceptions