Stack-Trace wird nicht in der richtigen Reihenfolge mit anderen Meldungen auf der Konsole gedruckt.
Waru kommt es vor, dass dasstack trace gedruckt für das folgende Java-Programm wird nicht in der richtigen Reihenfolge auf dem Konsolenbildschirm angezeigt? Es wird mit anderen Meldungen auf dem Bildschirm verwechselt.
Ist da irgendeine Parallelität involviert, die es verursacht?
Java-Programm:
package evm;
public class Client {
public static void main(String[] args) {
EVM evm = new EVM();
try {
evm.setCandidates(90); /**An Exception thrown here**/
} catch (CandidatesOutOfLimitsException e) {
e.printStackTrace();
//System.out.print(e.getMessage());
}
try {
evm.voteForCandidate(43); /**An Exception thrown here**/
} catch (BallotUnitOffException e1) {
e1.printStackTrace();
//System.out.print(e1.getMessage());
}
evm.pressBallotButton();
System.out.println(evm); //other messages
evm.switchOn();
System.out.println(evm); //other messages
try {
evm.voteForCandidate(43); /**An Exception thrown here**/
} catch (BallotUnitOffException e) {
e.printStackTrace();
//System.out.print(e.getMessage());
}
}
}
Ich habe die Zeilen, die eine Ausnahme auslösen, kommentiert.
run 1:
evm.CandidatesOutOfLimitsException: Number of Candidates cannot exceed 64
at evm.EVM.setCandidates(EVM.java:41)
at evm.Client.main(Client.java:9)
evm.BallotUnitOffException: Ballot Unit is not On
at evm.BallotUnit.pressCandidateButton(BallotUnit.java:38)
at evm.EVM.voteForCandidate(EVM.java:59)
at evm.Client.main(Client.java:16)
evm.BallotUnitOffException: Ballot Unit is not On
at evm.BallotUnit.pressCandidateButton(BallotUnit.java:38)
at evm.EVM.voteForCandidate(EVM.java:59)
at evm.Client.main(Client.java:28)
Control Unit State: evm.Off@42a57993
On Lamp: evm.Off@15db9742Ballot Unit: Ready Lamp: evm.Off@6d06d69c
Slide Switch:evm.SlideSwitchOne@7852e922
Ballot Unit: Ready Lamp: evm.Off@4e25154f
Slide Switch:evm.SlideSwitchTwo@70dea4e
Ballot Unit: Ready Lamp: evm.Off@5c647e05
Slide Switch:evm.SlideSwitchThree@33909752
Ballot Unit: Ready Lamp: evm.Off@55f96302
Slide Switch:evm.SlideSwitchFour@3d4eac69
Control Unit State: evm.On@28d93b30
On Lamp: evm.On@75b84c92Ballot Unit: Ready Lamp: evm.On@6bc7c054
Slide Switch:evm.SlideSwitchOne@7852e922
Ballot Unit: Ready Lamp: evm.On@232204a1
Slide Switch:evm.SlideSwitchTwo@70dea4e
Ballot Unit: Ready Lamp: evm.On@4aa298b7
Slide Switch:evm.SlideSwitchThree@33909752
Ballot Unit: Ready Lamp: evm.On@7d4991ad
Slide Switch:evm.SlideSwitchFour@3d4eac69
run 2:
evm.CandidatesOutOfLimitsException: Number of Candidates cannot exceed 64
at evm.EVM.setCandidates(EVM.java:41)
at evm.Client.main(Client.java:9)
evm.BallotUnitOffException: Ballot Unit is not On
at evm.BallotUnit.pressCandidateButton(BallotUnit.java:38)
at evm.EVM.voteForCandidate(EVM.java:59)
at evm.Client.main(Client.java:16)
Control Unit State: evm.Off@42a57993
On Lamp: evm.Off@15db9742Ballot Unit: Ready Lamp: evm.Off@6d06d69c
Slide Switch:evm.SlideSwitchOne@7852e922
Ballot Unit: Ready Lamp: evm.Off@4e25154f
Slide Switch:evm.SlideSwitchTwo@70dea4e
Ballot Unit: Ready Lamp: evm.Off@5c647e05
Slide Switch:evm.SlideSwitchThree@33909752
Ballot Unit: Ready Lamp: evm.Off@55f96302
Slide Switch:evm.SlideSwitchFour@3d4eac69
Control Unit State: evm.On@28d93b30
On Lamp: evm.On@75b84c92Ballot Unit: Ready Lamp: evm.On@6bc7c054
Slide Switch:evm.SlideSwitchOne@7852e922
Ballot Unit: Ready Lamp: evm.On@232204a1
Slide Switch:evm.SlideSwitchTwo@70dea4e
Ballot Unit: Ready Lamp: evm.On@4aa298b7
Slide Switch:evm.SlideSwitchThree@33909752
Ballot Unit: Ready Lamp: evm.On@7d4991ad
Slide Switch:evm.SlideSwitchFour@3d4eac69
evm.BallotUnitOffException: Ballot Unit is not On
at evm.BallotUnit.pressCandidateButton(BallotUnit.java:38)
at evm.EVM.voteForCandidate(EVM.java:59)
at evm.Client.main(Client.java:28)
Ähnlich bekomme ich jedes Mal ein anderes Muster, wenn ich es starte. Jeder erklärt dieses Verhalten.
Ich benutz
Eclipse Java EE IDE für Webentwickler.
Version: Luna Release (4.4.0)
Build id: 20140612-0600
Ich entschuldige mich für die lange Frage