Ich mache ein einfaches Kartenspiel in PHP. Wenn ein Benutzer versucht, eine Karte auszuspielen, möchte ich eine Ausnahme auslösen, wenn sie dies kann/kann. Anstatt eine Zahl mit einer bestimmten Bedeutung zurückzugeben (z. B. 1 bedeutet schlechte Karte, 2 bedeutet nicht, dass Sie an der Reihe sind ... usw.), wollte ich benutzerdefinierte Ausnahmen verwenden. Ich würde diese Ausnahmen abfangen und die Nachricht dem Benutzer anzeigen.Sprudeln Ausnahmen in PHP?
Ich erkenne, dass Ausnahmen für ungewöhnliche Fehler gedacht sind, aber ich denke, das ist eine gute Möglichkeit, mein Programm zu entwerfen.
Das Problem: meine Ausnahmen werden nicht abgefangen. Ich habe eine Seite namens play.php, die eine Klasse namens Game steuert, die eine Runde hat, die die Ausnahme auslöst. Die play.php Seite bekommt die Runde vom Spiel und macht Funktionsanrufe darauf. Allerdings heißt es, die Ausnahme wird nicht in der Runde gefangen.
Gibt es eine schnelle Lösung dafür? Wie kann ich die Ausnahme von meiner Round-Klasse auf meine play.php-Seite übertragen?
// in PLAY.php
try {
$game->round->startRound($game->players);
} catch (RoundAlreadyStartedException $e) {
echo $e->getMessage();
}
// in ROUND class
if (!($this->plays % (self::PLAYS_PER_ROUND + $this->dealer))) {
try {
throw new RoundAlreadyStartedException();
} catch (RoundAlreadyStartedException $e) {
throw $e;
}
return;
}
Ich habe versucht zu kontrollieren, nicht Fangen, Werfen, Erneutes Auslösen usw.
Das klingt einfach kaputt. – delnan
Ich bin von einem Java-Hintergrund :) – Lindz
Ziemlich schwer zu diagnostizieren, ohne Code zu betrachten. –