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.Krümelmonster hat geschrieben:Der Grund für die Schleife ist (bei mir zumindest), dass ich alle Vorkommen des Flughafens löschen will.
Übung 11 online!!!!
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Re: Übung 11 online!!!!
Naja, wirfst du eine Exception mit einer Message aus? Du kannst nämlich eine Exception mit String als Parameter erzeugen.
Re: Übung 11 online!!!!
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
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.
-----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-----");
}
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.
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Re: Übung 11 online!!!!
Ganz einfach..du gibst eine AirplaneExecption aus, erwartet wird aber laut Übung in diesem Fall eine AirborneComputerException.
Re: Übung 11 online!!!!
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.
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.
-
- Mausschubser
- Beiträge: 57
- Registriert: 7. Okt 2007 14:25
- Wohnort: Dieburg
- Kontaktdaten:
Re: Übung 11 online!!!!
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.
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 11 online!!!!
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!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Re: Übung 11 online!!!!
hmmmm.... ich hab da folgendes problem, also n airbornecomputer steht beim construktor folgendes:
das heisst, wir müssen ein airplane instanzieren, ne?? unser konstruktor bekommt aber nichts...
so und weiter im code bei getAirplane steht noch:
die frage ist jetzt, wieso steht da oben @throws AirplaneException??????
Code: Alles auswählen
/**
* Contructor; initializes plane and airportMap
*
* @throws AirplaneException
*/
so und weiter im code bei getAirplane steht noch:
so, dieses may be null hab ich so verstanden, dass wir im konstruktor das flügzeug einfach null setzten sollen, nicht??/**
* returns the bord computer's current airplane
*
* @return the current airplane (may be null!)
*/
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.
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Re: Übung 11 online!!!!
noch so ein paradoxon...



Re: Übung 11 online!!!!
@Stumpf.Alex, wie hast du das denn gemacht??? gleich null gesetzt??
und noch eine Frage:

oder einfach nur, dass man flüghafen nicht im süeicher findet???
und noch eine Frage:
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 eingibtSollte kein aktueller Airport eingestellt sein, so ist eine AirplaneException zu werfen.



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.
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Re: Übung 11 online!!!!
Jedes Flugzeug hat ein privates Airport Attribut. Wenn diese ungleich null ist, dann ist ein Flughafen eingestellt.Jo(h)nny hat geschrieben:@Stumpf.Alex, wie hast du das denn gemacht??? gleich null gesetzt??
und noch eine Frage: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 eingibtSollte kein aktueller Airport eingestellt sein, so ist eine AirplaneException zu werfen.![]()
![]()
oder einfach nur, dass man flüghafen nicht im süeicher findet???
Re: Übung 11 online!!!!
du meinst also wenn man eingibt:
ist kein flüghafen eingestellt, sonst ist egal, also ob "" , "default" oder sonst was??
Code: Alles auswählen
gnieob = new Airplane("Gnieob 747", 30000, 7000, 2.75, 400, null);
Atomenergie ist wie Sex - im Prinzip genial, wenn man nur wüsste wohin mit den Endprodukten.
-
- Nerd
- Beiträge: 647
- Registriert: 1. Okt 2007 12:40
- Wohnort: Darmstadt
- Kontaktdaten:
Re: Übung 11 online!!!!
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.Jo(h)nny hat geschrieben:du meinst also wenn man eingibt:ist kein flüghafen eingestellt, sonst ist egal, also ob "" , "default" oder sonst was??Code: Alles auswählen
gnieob = new Airplane("Gnieob 747", 30000, 7000, 2.75, 400, null);
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.
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 11 online!!!!
@Jo(h)nny:
Also in den Templates steht beim AirborneComputer Konstruktor nur:
Wo du her hast, dass es eine AirplaneException werfen soll, weiß ich nicht.
Also in den Templates steht beim AirborneComputer Konstruktor nur:
Code: Alles auswählen
/**
* Contructor; initializes plane and airportMap
*/
public AirborneComputer() {
}
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Re: Übung 11 online!!!!
@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:)
@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.
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 11 online!!!!
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.
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!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!