Übung 11 online!!!!

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von Stumpf.Alex » 31. Jan 2008 17:42

Naja, wirfst du eine Exception mit einer Message aus? Du kannst nämlich eine Exception mit String als Parameter erzeugen.
Krümelmonster hat geschrieben:Der Grund für die Schleife ist (bei mir zumindest), dass ich alle Vorkommen des Flughafens löschen will.
Achso..diese Schleife habe ich im Prinzip auch, aber in Form einer getter-Methode. Ich lasse mir das erste Vorkommen des Flughafens mit dem passenden Namen aus der Datenstruktur zurück liefern.

Benutzeravatar
s!mon
Computerversteher
Computerversteher
Beiträge: 373
Registriert: 20. Okt 2007 18:24
Wohnort: Höchst i. Odw

Re: Übung 11 online!!!!

Beitrag von s!mon » 31. Jan 2008 18:32

Ich verstehe gerade etwas nicht. Bei mir enden die Tests mit:

-----Flight route test finished-----
This wasn't supposed to happen. You should review your code.flugsimulator.AirplaneException: Airport not found

Code: Alles auswählen

	private static void testdelete() throws AirportException,
			AirborneComputerException, AirplaneException {
		test.deleteAirport("Köln");
		try {
			test.flyTo("Köln");
		} catch (AirborneComputerException e) {
			System.out.println(e.getMessage());
		}
		System.out.println("-----Delete Test finished-----");
	}
Die AirplaneException wird hier nicht abgefangen, also springt er zurück in die Main-Methode und gibt dort den Fehler aus. Meiner Meinung nach korrekt.

1. Wieso gibt er das println nicht aus? Springt er dann quasi sofort zurück zur Main-Methode?
2. Wieso wird bei euch der letzte das -----Delete Test finished----- noch ausgegeben? Ich sehe bei mir da keinen Fehler dran..

ciao, Simon.

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von Stumpf.Alex » 31. Jan 2008 19:25

Ganz einfach..du gibst eine AirplaneExecption aus, erwartet wird aber laut Übung in diesem Fall eine AirborneComputerException.

Benutzeravatar
s!mon
Computerversteher
Computerversteher
Beiträge: 373
Registriert: 20. Okt 2007 18:24
Wohnort: Höchst i. Odw

Re: Übung 11 online!!!!

Beitrag von s!mon » 31. Jan 2008 19:29

Hmm verdammt, stimmt.. aber in der Aufgabe steht doch: "Diese Methode soll auch überprüfen, ob das Flugzeug
genug Sprit für die Strecke hat; falls nicht, soll eine AirborneComputerException geworfen
werden. Sollte kein aktueller Airport eingestellt sein, so ist eine AirplaneException zu werfen."

Habe deshalb die AirplaneException geworfen. Mir ist schon klar, dass kein aktueller Airport was anderes ist als ein fehlender Airport.. trotzdem seltsam. Naja danke.

S. Oelmann
Mausschubser
Mausschubser
Beiträge: 57
Registriert: 7. Okt 2007 14:25
Wohnort: Dieburg
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von S. Oelmann » 1. Feb 2008 12:32

Eine Frage zur Hausübung 11 habe ich auch noch. Was passiert eigentlich, wenn beim Instanzieren eines Objektes eine Exception auftritt und bis bis zu dieser Stelle schon einige Attribute initialisiert wurden? Wird das ganze Objekt verworfen oder erhalte ich so ein Objekt, das nur zum Teil initialisiert ist? Das könnte nämlich auch zu einigen unerwünschten Fehlern führen und einen finally-Block notwendig machen.

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 11 online!!!!

Beitrag von Krümelmonster » 1. Feb 2008 14:44

Das Objekt wird verworfen.

Code: Alles auswählen

public class Test {
	public static void main(String[] args) {
		A a = null;

		try {
			a = new A(1, 2);
		}catch(IllegalArgumentException e) {
			
		}
		
		System.out.println(a==null); // true
	}

}

class A {
	int a;
	int b;
	
	A(int a, int b) throws IllegalArgumentException {
		this.a = a;
		this.b = b;
		throw new IllegalArgumentException();
	}
}
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: Übung 11 online!!!!

Beitrag von Jo(h)nny » 2. Feb 2008 14:59

hmmmm.... ich hab da folgendes problem, also n airbornecomputer steht beim construktor folgendes:

Code: Alles auswählen

/**
	 * Contructor; initializes plane and airportMap
	 * 
	 * @throws AirplaneException
	 */
das heisst, wir müssen ein airplane instanzieren, ne?? unser konstruktor bekommt aber nichts...
so und weiter im code bei getAirplane steht noch:
/**
* returns the bord computer's current airplane
*
* @return the current airplane (may be null!)
*/
so, dieses may be null hab ich so verstanden, dass wir im konstruktor das flügzeug einfach null setzten sollen, nicht??
die frage ist jetzt, wieso steht da oben @throws AirplaneException??????
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von Stumpf.Alex » 2. Feb 2008 15:23

noch so ein paradoxon... :( :|

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: Übung 11 online!!!!

Beitrag von Jo(h)nny » 2. Feb 2008 15:40

@Stumpf.Alex, wie hast du das denn gemacht??? gleich null gesetzt??
und noch eine Frage:
Sollte kein aktueller Airport eingestellt sein, so ist eine AirplaneException zu werfen.
wie ist denn das mit "nicht eingestellt" gemeint??? ich kann mir das jetzt nur so vorstellen, dass man beim instanzieren des flügzeugs null, "" oder "default" für die Location eingibt :?: :?: :?:
oder einfach nur, dass man flüghafen nicht im süeicher findet???
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von Stumpf.Alex » 2. Feb 2008 15:59

Jo(h)nny hat geschrieben:@Stumpf.Alex, wie hast du das denn gemacht??? gleich null gesetzt??
und noch eine Frage:
Sollte kein aktueller Airport eingestellt sein, so ist eine AirplaneException zu werfen.
wie ist denn das mit "nicht eingestellt" gemeint??? ich kann mir das jetzt nur so vorstellen, dass man beim instanzieren des flügzeugs null, "" oder "default" für die Location eingibt :?: :?: :?:
oder einfach nur, dass man flüghafen nicht im süeicher findet???
Jedes Flugzeug hat ein privates Airport Attribut. Wenn diese ungleich null ist, dann ist ein Flughafen eingestellt.

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: Übung 11 online!!!!

Beitrag von Jo(h)nny » 2. Feb 2008 16:05

du meinst also wenn man eingibt:

Code: Alles auswählen

gnieob = new Airplane("Gnieob 747", 30000, 7000, 2.75, 400, null);
ist kein flüghafen eingestellt, sonst ist egal, also ob "" , "default" oder sonst was??
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

Stumpf.Alex
Nerd
Nerd
Beiträge: 643
Registriert: 1. Okt 2007 12:40
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 11 online!!!!

Beitrag von Stumpf.Alex » 2. Feb 2008 16:53

Jo(h)nny hat geschrieben:du meinst also wenn man eingibt:

Code: Alles auswählen

gnieob = new Airplane("Gnieob 747", 30000, 7000, 2.75, 400, null);
ist kein flüghafen eingestellt, sonst ist egal, also ob "" , "default" oder sonst was??
Jop, sozusagen...aber ob man bei "" eingestellt betrachtet, ist schon wieder eine Glaubensfrage...also ich lasse keine leeren Strings als location zu, obwohl es ja nicht von der Übung verlangt wird.

EDIT: Außerdem ist ja auch nicht sichergestellt, dass der Name in der Bordcomputerdatenbank existiert. Das sollte auch geprüft werden. Denn du hast ja nur den Namen des Aufenthaltortes, aber keine Koordinaten, die du zur Berechung des Fluges brauchst.

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 11 online!!!!

Beitrag von Krümelmonster » 2. Feb 2008 17:05

@Jo(h)nny:
Also in den Templates steht beim AirborneComputer Konstruktor nur:

Code: Alles auswählen

  /**
   * Contructor; initializes plane and airportMap
   */
  public AirborneComputer() {
    
  }
Wo du her hast, dass es eine AirplaneException werfen soll, weiß ich nicht.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
Jo(h)nny
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 197
Registriert: 19. Dez 2007 23:39

Re: Übung 11 online!!!!

Beitrag von Jo(h)nny » 2. Feb 2008 17:23

@Krümelmonster, schon wieder??? das gibts ja nicht:) dann hat sich das ja geklärt
@Stumpf.Alex, die sache ist ja eigentlich, wenn das nicht im speicher ist, musst du glaub ich ne airbornecompexc werfen und wenn nichts eingestellt, ne airplaneexception, sonst wärs ja auch egal, ich hätt das mit meiner findAirport gemacht und das wärs:)
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 11 online!!!!

Beitrag von Krümelmonster » 2. Feb 2008 17:39

Hm, also in meiner Lösung sind "Kein Flughafen eingestellt" und "Eingestellter Flughafen nicht (mehr) im Speicher" äquivalent.
In beiden Fällen wird eine AirplaneExcpetion geworfen.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Antworten

Zurück zu „Archiv“