Va veni un timp în curs de dezvoltare, mai ales când se dezvoltă pentru alți dezvoltatori, că credeți că "ar trebui să anticipăm cu adevărat această eroare". Acest sfat rapid vă va arăta cum să faceți acest lucru - calea curată.
De multe ori, veți încerca să anticipați o eroare, dar în cele din urmă doar urmăriți ceva. În timp ce depanați, ați fi foarte util să aruncați o excepție pentru a vă opri executarea codului sau pentru a da mai multe informații despre motivul pentru care se întâmplă eroarea. Pentru a face asta, trebuie să faceți asta arunca o eroare a utilizatorului, ceea ce înseamnă că jucătorul de depanare al Flash va putea să îl captureze, la fel și consola atunci când va exporta direct din Flash Professional.
Să presupunem că construiesc o clasă de utilizatori; este o clasă statică cu parametri ca Nume
și sex
.
Acum, să spun că vreau să prind în cazul în care utilizatorul introduce alte elemente decât M sau F în genul său:
pachet public class User1 privat static var _name: String; privat static var _gender: String; // SETTERS set public funcția statică nume (nume: String): void _name = nume; funcția statică publică set gender (gender: String): void gender = gender.toUpperCase (); dacă gender! = "F" && gender! = "M") aruncați o nouă eroare ("Sexul trebuie să fie F sau M"); altceva _gender = sex; funcția publică statică obține numele (): String return _name; funcția statică publică obține gen (): String return _gender;
Trimiteți ceva de genul User1.gender = "multi"
, Mi-ar fi aruncat o eroare în depanatorul meu specificând că sexul meu este nevalid.
Grabind acest concept și dezvoltându-l mai departe, pot construi și clase de erori personalizate.
Să presupunem că am o clasă UConnection care gestionează activitatea de conectare utilizator ca login. Această funcție de conectare trimite informații către o metodă php care returnează un ID de utilizator (în acest caz o voi numi uid) și trebuie să anticipați că uid-ul este nevalid (adică nu se poate efectua login-ul).
Ceea ce ar trebui să creați mai întâi este o clasă de erori personalizată, o clasă UIDError.
pachet public class UIDError extinde Eroare funcția publică UIDError (): void super ("ID-ul de utilizator returnat invalid");
În al doilea rând, o clasă care anticipează și gestionează excepția:
pachet public class Utilizator private static var _uid: int; // Set set public static set uid (uid: int): void if (uid == 0) arunca noua UIDError (); altceva _uid = uid; // GETTER funcția statică publică get uid (): int return _uid;
În cele din urmă, punerea în aplicare:
// rețineți că acesta este codul pseudo, // nu va funcționa deoarece nu am un login.php // și nu trimit nici o variabilă prin post, // pentru o versiune de lucru se referă la probele furnizate funcția publică (un: String; pw: String): void urlloader: URLLoader = nou URLLoader (); urlloader.addEventListener (Event.COMPLETE, onLogin) urlloader.load (nou URLRequest ("login.php")); funcția privată onLogin (e: Eveniment) try User.uid = e.target.data captură (e: UIDError) trace ("autentificare nevalidă");
Codul din interiorul lui captură
bloc ruleaza daca observa orice erori aruncate in interiorul încerca
bloc. În acest caz, dacă a UIDError
este aruncat atunci când încercați să setați User.uid
, atunci "autentificare nevalidă"
va fi urmărită. Dacă se declanșează orice alt tip de eroare, Flash Player va reacționa așa cum procedează în mod normal.
Deci, acolo aveți, o modalitate curată și simplă de a vă manipula codul, pentru dvs. și plăcerea de depanare a colegilor dumneavoastră.
Sper că ți-a plăcut acest sfat rapid, mulțumesc pentru lectură!