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

Informatiker Board » Themengebiete » Praktische Informatik » OO Programmierung » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
neuling96

vielen dank Wink
Karlito

Die throws-Deklaration muss an die Methode, in der die Exception geworfen wird.
code:
1:
2:
3:
4:
5:
6:
7:
	public Kreis (Punkt2D mittelpunkt, double r) throws IllegalArgumentException {
		if(r<0){
			throw new IllegalArgumentException("Parameter > 0 erwartet. Gefunden: "+r);
		}
	}


Die Deklaration wird von Java verwendet um den Programmierer zu einer Fehlerbehandlung mittels try-catch zu zwingen. Verwendet er eine Methode, welche eine Exception wirft, so muss er diese in einen try-catch-Block einbetten, sonst Kompiliert das Programm nicht. Eine Ausnahme bilden hier RuntimeExceptions. Diese können auch ohne throws-Deklaration geworfen werden.

Gruß,

Karlito
neuling96

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
public class Kreis throws IllegalArgumentException?? {

  private Punkt2D mittelpunkt;
  private double radius;

public Kreis (Punkt2D mittelpunkt, double r) {
if(r<0){
throw new IllegalArgumentException("Parameter > 0 erwartet. Gefunden: "+r);
}


Abscheidend muss man
throws IllegalArgumentException

noch ergänzen , aber wieso?
eulerscheZahl

Im Normalfall ja. Wenn ein geordnetes Weitermachen nicht möglich ist, kannst du auch deine Daten sichern und das Programm beenden oder selbst eine Exception werfen, die dann an die aufrufende Funktion weitergereicht wird.
neuling96

try {
<Anweisung>
...
} catch (<ExceptionTyp> e) {
<Anweisung>
...
}


falls in der Anweisung einen Fehler auftritt dann wird mit es mit catch abgefangen und
dann verlässt man den try-catch block und macht mit den restlichen Programm weiter?
eulerscheZahl

Dann probiere es doch einfach aus.
Ergebnis: ja, man kann im Konstruktor eine Exception werfen. Und wenn du die Exception auffangen willst, mache es um Himmels Willen nicht so.
neuling96

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
public class Kreis {

  private Punkt2D mittelpunkt;
  private double radius;

public Kreis (Punkt2D mittelpunkt, double r) {
if(r<0){
throw new IllegalArgumentException("Parameter > 0 erwartet. Gefunden: "+r);
}
this.mittelpunkt= mittelpunkt;
this.radius=r;
}
..
...
...


wir haben heute expection behandelt und ich bin mir nicht sicher ob man throw auch im konstrukter einbauen darf/kann??
neuling96

Hi,
Eins muss ich noch los werden !
Vielen Dank für deine tolle Hilfe!!

Gott
eulerscheZahl

code:
1:
2:
3:
4:
public void skaliere(double fac) {
    mittelpunkt.skaliere(fac);
    this.radius *= Math.abs(fac);
}
neuling96

wäre es nicht private, könnte dann darauf zurückgreifen?

ich komm nicht dahinter, wie der radius allg. nach der Skalierung aussieht
Zunge raus
code:
1:
2:
3:
4:
5:
6:
7:
8:
ich versuch mal
public void sakliere(double fac) {
mittelpunkt.skaliere(fac);
this.radius*=fac;
}
}
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.