2010-12-27 7 views
2

Ich schreibe einen Simulationscode und habe mein Modell wie erwartet laufen lassen. Wenn ich jedoch das Modell zurücksetze (es sitzt auf einer großen Menge von Code, der von anderen geschrieben wurde, auf den ich jetzt keinen Zugriff habe) und es erneut ausführen möchte, stoße ich in Schwierigkeiten.Wie Debug-Code für Reset-Funktionalität in Java GUI-Anwendung?

Von dem, was ich aus dem Lesen von Beiträgen auf der Website und erhalten Fehler erhalten habe ich Probleme wegen Nullzeiger Ausnahmen und Awt-Warteschlange Fehler wegen einiger der grafischen Elemente auftreten, die in Schwierigkeiten nach dem Reset (wegen dieser Elemente sie beziehen sich auf sind nicht mehr gültig).

0- Was passiert normalerweise, wenn die Reset-Taste in einem Simulationscode gedrückt wird? Ich denke (hoffe), dass alle anderen ihre Hausaufgaben richtig gemacht haben, und da ich nichts davon weiß, muss ich selbst etwas aufräumen, um alles schön zu machen.

1-Nun, was ist der einfachste Weg, um diese Art von Problemen zu beheben, die erst nach dem Ausführen von Code passieren?

2-Auch was sind allgemeine Richtlinien für die Bereinigung von Code nach jedem Lauf einer Simulation?

+3

Ich habe die Frage nicht ganz verstanden . Wird der Code tatsächlich geändert, wenn er ausgeführt wird? Oder ist es nur der Effekt, es anders zu machen? –

+0

Btw, haben Sie den Quellcode der Teile nicht von Ihnen geschrieben? Du hast gesagt, du kannst es nicht ändern, aber wenn du es wenigstens sehen kannst, dann könntest du den Debugger durchlaufen und sehen, was passiert. –

+0

nein der Code ändert sich nicht, wenn er ausgeführt wird (wenn ich die Bedeutung davon richtig verstehe). Erster Lauf alles ist in Ordnung. Wenn ich es schließe und erneut laufe, funktioniert alles gut. Aber wenn ich das Modell über GUI zurücksetze, dann bekomme ich viele Nullzeiger und AWT-Fehler, die sich von dem, was ich verstehe, auf unsauberes Aufräumen beziehen. – blackace

Antwort

0

Ich weiß nicht die Antwort auf die Punkte 0 und 2, so dass jeder Beitrag geschätzt wird.

Ich erkannte gerade, was das Problem war. Die GUI wurde nicht korrekt aktualisiert, so dass wieder auf "aufgeräumte" Elemente verwiesen wurde, die nach dem ersten Lauf nicht mehr existierten und somit alle möglichen seltsamen Fehler geworfen wurden ...

0

Ah, OK. Ich kann dir nicht sagen, wo genau das Problem liegt, aber ich habe eine vage Erinnerung daran, wie ich diesen Fehler behoben habe. Ich denke, es hatte etwas mit dem Begriff "leerer" Wert der grafischen Komponente zu tun. Es hat nämlich null nicht als Wert unterstützt.

Beginnen Sie mit der Untersuchung der Stack-Ablaufverfolgung der Ausnahme und lesen Sie sie, bis Sie einige Ihrer Klassen sehen (d. H. Die ersten, die nicht AWT, Swing oder eine andere zugrunde liegende Klasse sind). Sehen Sie sich dann die Zeilennummern an, die in den Stacks dieser speziellen Klassen geschrieben wurden.

Wenn es nicht offensichtlich ist, was die Ausnahme in dieser Zeile sofort verursacht hat, indem Sie den Code (häufiger als erwartet) betrachten, versuchen Sie, einen Haltepunkt ein paar Zeilen vorher zu setzen und durch die Zeilen zu springen der Debugger. Hoffentlich wäre dann klar, was schief gelaufen ist.

Nun, das ist, wie ich solche Fehler debuggen. Ich hoffe es hilft.