Exceptions

Status
Nicht offen für weitere Antworten.

amicelli

Mitglied
Kennt jemand eine Seite wo man eine einfache Erklärung zu Exceptions findet?
Das Grundprinzip hab ich verstanden, aber woher weis ich, welche Exception
ich brauche oder besser gefragt, wie man das überhaupt programmiert.
 

mic_checker

Top Contributor
Wann du welche Exception "brauchst" steht z.B. in der API.

Lies dir einfach mal verschiedene Dokumentationen durch, z.B. siehst du bei der Methode "parseInt(String s)" das eine NumberFormatException auftreten kann, so dass du diese z.B. catchen musst.

public static int parseInt(String s)
throws NumberFormatException
Siehe:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html#parseInt(java.lang.String)

wie man das überhaupt programmiert
Was meinst du damit? Ist dir nun das Prinzip klar oder nicht ? Weisst du wofür finally da ist, welche Exceptions man nicht catchen muss, was throws macht etc. ?
 

The_S

Top Contributor
Welche Exception du brauchst findest du in der API, und abfangen tutst du sie, indem du einen try - catch - Block um den "gefährlichen" Code baust.

Code:
try {
gefählricher Code
}
catch (Exception e) {
wenn's schiefgeht
}

[edit] zu langsam
 

amicelli

Mitglied
ich weis, was try, catch, throw und finally bedeuten,
auch den groben Aufbau

Das API hab ich gefunden, aber kann nicht drauf zugreifen. Gibts da nicht noch ne andere Variante?

Wie kann man eigene Exceptions definieren?
 

mic_checker

Top Contributor
comp89 hat gesagt.:
indem die klasse von einer exception erbt
Ist vielleicht ein bisschen "schwammig" formuliert - schließlich könnte dann auch einer meinen er müsste von "Throwable" oder "Error", "RuntimeException" etc. ableiten.
Du meinst ja "Exception", wollte nur nochmal gerade das posten, das keiner auf falsche Ideen kommt ;)
 

mic_checker

Top Contributor
amicelli hat gesagt.:
Das API hab ich gefunden, aber kann nicht drauf zugreifen. Gibts da nicht noch ne andere Variante?
Warum das? Von FW geblockt?

Ansonsten kannst du direkt in den Original Source Codes von SUN nachschauen, da stehts natürlich auch drin.
 
G

Guest

Gast
Bin am Verzweifeln:
Also das Programm is ganz einfach, soll Fläche und Umfang eines Dreiecks berechnen.
Wenn die drei Seitenlängen kein Dreieck aufspannen (also wenn a+b<=c oder b+c<=a oder a+c<=b ist)
soll eine Exception geworfen werden.

Code:
import algds.IOUtils;

public class Dreieck {
	
	Dreieck() {
		int seitea=IOUtils.readInt();
		int seiteb=IOUtils.readInt();
		int seitec=IOUtils.readInt();
		Flächeninhalt(seitea,seiteb,seitec);
                Umfang(seitea,seiteb,seitec);	
	}
	
	
	double Flächeninhalt(int a,int b,int c){
		...
	}
	
	int Umfang(int a,int b,int c){
		...
	}

	public static void main(String[] args) {
		new Dreieck();
		
	}
}

Und wie bau ich die da jetzt ein?
 

mic_checker

Top Contributor
1) Methodennamen werden klein geschrieben (du solltest auch Umlaute im Namen vermeiden).

Mit seitea,seiteb etc meinst du die Längen der jeweiligen Seiten oder? Warum machst du es nicht so das du die Koordinaten angibst? Naja, egal - zurück zu deinem Problem.

Du hast deine Bedingung für die du sagst: Wenn die erfüllt ist, liegt kein Dreieck vor. Nun musst du diese Bedingung in den Methoden überprüfen und wenn sie nicht erfüllt ist die Exception schmeissen (throws bei Methode nicht vergessen).

Dann musst du z.B. im Konstruktor mit try ... catch das ganze abfangen.

Btw.
poste doch mal deinen Code für deine Exception
 

amicelli

Mitglied
Jab ich weis... :roll:

also hab jetzt folgendes gemacht: so sollte die Lösung jedenfalls aussehen, aber haut auch nicht hin

Code:
import Exception.InvalidTriException;
import algds.IOUtils;

public class Dreieck {
	
	Dreieck() throws InvalidTriException{
		int seitea=IOUtils.readInt();
		int seiteb=IOUtils.readInt();
		int seitec=IOUtils.readInt();
		
                boolean pos=true;
		if(seitea+seiteb <= seitec)pos=false;
		if(seiteb+seitec <= seitea)pos=false;
		if(seitea+seitec <= seiteb)pos=false;
		if (pos!=true)
			throw new InvalidTriException("Es wird kein Dreieck aufgespannt");
		
	flächeninhalt(seitea,seiteb,seitec);
        umfang(seitea,seiteb,seitec);
}
	
	
	double flächeninhalt(int a,int b,int c){
		...
	}
	
	int umfang(int a,int b,int c){
		...
	}

	public static void main(String[] args) {
		new Dreieck();
		
	}
}

naja und das hab ich so gefunden, weis nur nicht was das "super" bedeutet:

Code:
package Exception;

public class InvalidTriException extends RuntimeException{
	public InvalidTriException(String err){
		super(err);
	}
}

tja und try und catch wurden da überhaupt nicht verwendet, was ich auch schon wieder nicht kapiere
 

mic_checker

Top Contributor
amicelli hat gesagt.:
naja und das hab ich so gefunden, weis nur nicht was das "super" bedeutet:

Code:
package Exception;

public class InvalidTriException extends RuntimeException{
	public InvalidTriException(String err){
		super(err);
	}
}


tja und try und catch wurden da überhaupt nicht verwendet, was ich auch schon wieder nicht kapiere

Wegen super: Guck doch z.B. mal hier:
http://www.java-forum.org/de/viewtopic.php?t=14855

Es gibt sicher noch einige weitere Threads dazu.

Wenn du eigene Exception Klassen definierst solltest du nicht von RuntimeException ableiten, leite von Exception ab.

Code:
public class InvalidTriException extends Exception {
	public InvalidTriException() {
		super();
	}
	
	public InvalidTriException(String err) {
		super(err);
	}
}

Was meldet der Compiler wenn du versuchst zu compilieren? "InvalidTriException" must be caught...

Deshalb muss in main noch so was rein:

Code:
		try {
			new Dreieck();
		} catch(InvalidTriException ite) {
			System.err.println(ite.getMessage());
			ite.printStackTrace();
		}
 

mic_checker

Top Contributor
amicelli hat gesagt.:
Code:
		if (pos!=true)
			throw new InvalidTriException("Es wird kein Dreieck aufgespannt");

Dafür geht auch einfacher:

Code:
if(!pos)
...

Btw. ich fände es sinnvoller wenn du anstatt die Seitenlängen zu übergeben, Koordinaten angeben würdest - aber das ist natürlich dir selbst überlassen. Außerdem würde ich noch einen Konstruktor mit Parametern definieren etc.

Der Code müsste so eigentlich klappen. Das ite.getMessage() kannst du auch wieder rauslöschen, hab ich nur zu testzwecken drin gelassen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
C Exceptions identifizieren Java Basics - Anfänger-Themen 5
A Exceptions mit objektreferenzen Java Basics - Anfänger-Themen 4
A Exceptions und methods Java Basics - Anfänger-Themen 2
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
A Exceptions und Packages Java Basics - Anfänger-Themen 6
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
X Exceptions Benutzereingaben Java Basics - Anfänger-Themen 4
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
L Exceptions und Konten Java Basics - Anfänger-Themen 21
D Frage zu Exceptions Java Basics - Anfänger-Themen 8
I Wie programmiert man Exceptions? Java Basics - Anfänger-Themen 4
N Unterschied zwischen Checked und Unchecked Exceptions Java Basics - Anfänger-Themen 12
C Erste Schritte Exceptions nicht verstanden Java Basics - Anfänger-Themen 2
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
T Exceptions - ausgeführte Zeilen Java Basics - Anfänger-Themen 4
J Exceptions Java Basics - Anfänger-Themen 69
C Exceptions Java Basics - Anfänger-Themen 8
C Exceptions Java Basics - Anfänger-Themen 6
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
F Exceptions Java Basics - Anfänger-Themen 6
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
M "Exceptions abfragen" Java Basics - Anfänger-Themen 6
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
Z Catch & Exceptions Java Basics - Anfänger-Themen 4
N Compiler-Fehler Drei Exceptions in GUIHack für Dreiecke auf MoveButtons Java Basics - Anfänger-Themen 36
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
S Exceptions Java Basics - Anfänger-Themen 7
M Vererbung Problem Vererbung/Exceptions Java Basics - Anfänger-Themen 9
S Verschachtelte Exceptions - Übersicht verbessern Java Basics - Anfänger-Themen 2
J Eclipse Exceptions Java Basics - Anfänger-Themen 2
K Schleifen und Exceptions Java Basics - Anfänger-Themen 8
K Exceptions auslagern Java Basics - Anfänger-Themen 15
R NullPointer Exceptions Java Basics - Anfänger-Themen 3
F Erste Schritte Übung zu Exceptions Java Basics - Anfänger-Themen 24
R Exceptions (try/catch) Java Basics - Anfänger-Themen 63
H Int Exceptions Java Basics - Anfänger-Themen 12
M Exceptions per throws oder try Java Basics - Anfänger-Themen 4
M Compiler-Fehler Queue als ArrayList mit Exceptions Java Basics - Anfänger-Themen 3
T Exceptions in einer Klasse Java Basics - Anfänger-Themen 3
B Eigene Exceptions entwerfen Java Basics - Anfänger-Themen 3
H Methoden Überflüssige Exceptions Java Basics - Anfänger-Themen 20
C Exceptions Java Basics - Anfänger-Themen 14
1 While Schleife Exceptions Java Basics - Anfänger-Themen 6
I Erste Schritte Eigene Fehlermeldungen bei Exceptions Java Basics - Anfänger-Themen 19
D Frage zu Exceptions Java Basics - Anfänger-Themen 12
M Compiler-Fehler Exceptions lieber throwen oder direkt catchen? Java Basics - Anfänger-Themen 8
T Exceptions Java Basics - Anfänger-Themen 19
B Wie finde ich Exceptions? Java Basics - Anfänger-Themen 19
Dit_ Input/Output Alle Exceptions protokollieren Java Basics - Anfänger-Themen 9
T Exceptions Java Basics - Anfänger-Themen 12
J Standard Exceptions abfangen Java Basics - Anfänger-Themen 5
F Exceptions werfen oder catchen?? Java Basics - Anfänger-Themen 14
D Exceptions - Ausnahmebehandlung Java Basics - Anfänger-Themen 19
D Frage zu Exceptions und der import Anweisung Java Basics - Anfänger-Themen 12
J Paar Fragen zu Exceptions Java Basics - Anfänger-Themen 16
G Verständnisproblem: Exceptions Java Basics - Anfänger-Themen 17
S Exceptions bei push/pop in Stack Java Basics - Anfänger-Themen 8
C Exceptions beim Beenden Java Basics - Anfänger-Themen 2
C TimerTask und Exceptions Java Basics - Anfänger-Themen 5
E Klasse öffnen, mehrere Exceptions Java Basics - Anfänger-Themen 9
C Exceptions Java Basics - Anfänger-Themen 7
G 2 Exceptions in einer Methode Java Basics - Anfänger-Themen 3
firefexx Exceptions werfen Java Basics - Anfänger-Themen 5
0 Exceptions mehrfach fangbar? Java Basics - Anfänger-Themen 4
O Exceptions Java Basics - Anfänger-Themen 3
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
H Diverse Exceptions - Troubleshooting Java Basics - Anfänger-Themen 3
J exceptions Java Basics - Anfänger-Themen 8
sc0p InterruptedExceptions und Exceptions - in Einem! Java Basics - Anfänger-Themen 5
M Frage zu Exceptions Java Basics - Anfänger-Themen 19
M Fragen zu Exceptions Java Basics - Anfänger-Themen 3
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
D Exceptions werfen + beenden Java Basics - Anfänger-Themen 12
M Exceptions aus interface-Methoden Java Basics - Anfänger-Themen 2
S File.renameTo und Exceptions / Fehlermeldung Java Basics - Anfänger-Themen 2
B Exceptions in Liste sammeln? Java Basics - Anfänger-Themen 5
O Eigene Exceptions Java Basics - Anfänger-Themen 11
O "restliche" Exceptions fangen Java Basics - Anfänger-Themen 8
H [Stil] Exceptions in der Klasse behandeln oder throwen? Java Basics - Anfänger-Themen 62
T Problem beim Werfen und Fangen von Exceptions Java Basics - Anfänger-Themen 2
V Aktivitätsdiagramm / Exceptions Java Basics - Anfänger-Themen 5
V Exceptions Java Basics - Anfänger-Themen 6
K Frage zu Exceptions -> Logging Java Basics - Anfänger-Themen 6
M Eigene Fehlermeldung bei Exceptions? Java Basics - Anfänger-Themen 12
R JDom Exceptions Java Basics - Anfänger-Themen 4
R Datei einlesen mit Exceptions Java Basics - Anfänger-Themen 2
Daniel_L Verwendung von try und catch bei exceptions Java Basics - Anfänger-Themen 7
C Reflection Exceptions behandeln Java Basics - Anfänger-Themen 6
G Exceptions - spiegeln wir da nicht einen Spiegel im Spiegel? Java Basics - Anfänger-Themen 10
G Verschiedene Exceptions zu gleichem Block Java Basics - Anfänger-Themen 6
U Frage zu Exceptions Java Basics - Anfänger-Themen 5
mwildam Philosophiefrage zu Exceptions und Rückgabewerten Java Basics - Anfänger-Themen 6
D Static, final Objekte mit Exceptions im Konstruktor Java Basics - Anfänger-Themen 2
G Exceptions Java Basics - Anfänger-Themen 4
G ServerSocket: Exceptions und Timeout Probleme Java Basics - Anfänger-Themen 10
M Exceptions bei Textfeldern abfangen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben