Während der Entwicklung kommt es vor allem bei der Entwicklung für andere Entwickler, dass Sie denken, "Ich sollte diesen Fehler wirklich antizipieren". Dieser Quick Tip zeigt Ihnen, wie es geht - auf saubere Weise.
Oft versuchen Sie, einen Fehler zu antizipieren, enden jedoch nur, um etwas herauszufinden. Beim Debuggen wäre es wirklich nützlich, eine Ausnahme auszulösen, um die Ausführung des Codes zu stoppen, oder weitere Informationen dazu zu geben, warum der Fehler auftritt. Dazu müssen Sie werfen ein Fehler für den Benutzer, dh der Debug-Player von Flash kann ihn abfangen, ebenso wie die Konsole beim direkten Export von Flash Professional.
Nehmen wir an, ich baue eine Benutzerklasse auf. Es ist eine statische Klasse mit Parametern wie Name
und Geschlecht
.
Nehmen wir an, ich möchte herausfinden, ob der Benutzer etwas anderes als M oder F in sein / ihr Geschlecht eingibt:
package öffentliche Klasse User1 private static var _name: String; private static var _gender: String; // SETTERS public static function set name (name: String): void _name = name; public static function set gender (gender: String): void gender = gender.toUpperCase (); if (gender! = "F" && gender! = "M") werfen neuen Fehler ("Geschlecht muss F oder M sein"); else _gender = Geschlecht; öffentliche statische Funktion get name (): String return _name; public static function get gender (): String return _gender;
Indem Sie so etwas einreichen User1.gender = "multi"
, In meinem Debugger wurde ein Fehler ausgegeben, der angibt, dass mein Geschlecht ungültig ist.
Wenn ich dieses Konzept ergreife und weiterentwickle, kann ich auch benutzerdefinierte Fehlerklassen erstellen.
Nehmen wir an, ich habe eine UConnection-Klasse, die Benutzerverbindungsaktivitäten wie Login behandelt. Diese Login-Funktion sendet Informationen an eine PHP-Methode, die eine Benutzer-ID zurückgibt (in diesem Fall nenne ich sie UID) und Sie müssen davon ausgehen, dass die UID ungültig ist (was bedeutet, dass der Login nicht durchgeführt werden konnte)..
Was Sie zuerst erstellen müssen, ist eine benutzerdefinierte Fehlerklasse, eine UIDError-Klasse.
Paket öffentliche Klasse UIDError erweitert Fehler öffentliche Funktion UIDError (): void super ("Benutzer-ID wurde ungültig zurückgegeben");
Zweitens eine Klasse, die die Ausnahme antizipiert und behandelt:
package öffentliche Klasse Benutzer private static var _uid: int; // SETTER öffentliche statische Funktion set uid (uid: int): void if (uid == 0) throw new UIDError (); else _uid = uid; // GETTER öffentliche statische Funktion get uid (): int return _uid;
Zum Schluss die Umsetzung:
// Denken Sie daran, dies ist ein Pseudo-Code. // Er funktioniert nicht, da ich keine login.php habe. // Ich versende keine Variablen per Post. // Eine funktionierende Version finden Sie in den bereitgestellten Beispielen Öffentliche Funktionsanmeldung (un: String; pw: String): void urlloader: URLLoader = neuer URLLoader (); urlloader.addEventListener (Event.COMPLETE, onLogin) urlloader.load (neue URLRequest ("login.php")); private Funktion onLogin (e: Event) try User.uid = e.target.data catch (e: UIDError) trace ("login invalid");
Der Code in der Fang
Der Block wird ausgeführt, wenn er feststellt, dass Fehler in der Datenbank ausgegeben werden Versuchen
Block. In diesem Fall, wenn a UIDError
wird geworfen, wenn versucht wird, zu setzen User.uid
, dann "Login ungültig"
wird verfolgt. Wenn eine andere Art von Fehler ausgegeben wird, reagiert Flash Player wie gewohnt.
So haben Sie es, eine saubere, einfache Art und Weise der Fehlerbehebung bei der Verarbeitung Ihres Codes, für Sie und das Debugging-Vergnügen Ihrer Kollegen.
Ich hoffe, Ihnen hat dieser schnelle Tipp gefallen, danke fürs Lesen!