Quick-Tip: Kaster feil Clean Way
Del
Del
Del
Del
Dette Cyber mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av
Dette innlegget er en del av en serie som heter Hvordan fikse bugs i Flash.Exclusive Freebie. Tr.ace (), en utmerket AS3 Debugging UtilityFixing Bugs i AS3: Innledning
Det kommer en tid mens utvikling, spesielt når du utvikler for andre utviklere, at du tenker "jeg burde egentlig forutse denne feilen". Denne Quick Tips vil vise deg hvordan du gjør det - ren måte
Trinn 1: Kaster
Ofte du skal prøve å forutse en. bug, men ender opp med bare å spore noe ut. Mens debugging ville du synes det er veldig nyttig å kaste et unntak for å gjøre koden stopp fra utførende videre, eller gi litt mer informasjon om hvorfor skjer det feil. For å gjøre det må du kaste La oss si at jeg 'm bygge et bruker klasse; det er en statisk klasse med parametere som navn og kjønn Nå la oss si at jeg ønsker å fange dersom bruker innganger noe annet enn M eller F i hans /hennes kjønn. Ved å sende noe sånt User1.gender = "multi", ville jeg blitt kastet en feil i min debugger spesifisere at mitt kjønn er ugyldig Griper dette konseptet og utvikle det videre, kan jeg også bygge tilpassede feilklasser. La oss si jeg har en UConnection klasse som håndterer bruker Connection aktivitet som innlogging. Denne innloggingsfunksjonen sender informasjon til en php metode som returnerer en bruker-ID (i dette tilfellet vil jeg kalle det UID), og du trenger å forutse uid være ugyldig (som betyr innloggings kunne ikke utføres). Hva ville du trenger for å lage første er en tilpasset feil klasse, en UIDError klasse For det andre en klasse som forventer og håndterer unntak: Endelig gjennomføring: Koden inne i catch-blokken går hvis det merknader eventuelle feil blir kastet inni prøve blokken. I dette tilfellet, hvis en UIDError kastes når du forsøker å sette User.uid, deretter "login ugyldig" vil spores. Hvis noen annen type feil blir kastet, da Flash Player vil reagere på den måten det normalt gjør. Så det du har det, en ren, enkel måte å feil håndtering av koden din, for deg og dine kollegaer 'debugging glede. Jeg håper du likte denne rask spiss, takk for lesing!
en feilmelding til brukeren, noe som betyr at Flash er debug-spilleren vil være i stand til å fange den, så vil konsollen når du eksporterer direkte fra Flash Professional.
pakke {public class Bruker1 {private Static Var snitt: String; privat Static Var _gender: String; //Settere public static funksjon satt navn (navn: String): void {snitt = navn; } Public static funksjon satt kjønn (kjønn: String): void {kjønn = gender.toUpperCase (); if (gender = "F" &! &! gender = "M") {kaste nytt Feil ("Gender må være F eller M"); } else {_gender = kjønn; }} Public static funksjon får navn (): String {return snitt; } Public static funksjon få kjønn (): String {return _gender; }}}
Trinn 2:. Prøv og Catch Feil
pakken {public class UIDError strekker Feil {offentlig funksjon UIDError (). void {super ("User ID returnert ugyldig"); }}}
pakken {public class User {private static Var _uid: int; //SETTER public static funksjon satt uid (uid: int): void {if (uid == 0) {kaste nytt UIDError (); } else {_uid = uid; }} //Getter public static funksjon få uid (): int {return _uid; }}}
//husk dette er pseudo-kode, //det vil ikke fungere som jeg ikke har en login.php //og jeg ikke sender noen variable gjennom post, //for en fungerende versjon referere til prøvene providedpublic funksjon innlogging (un: String, pw: String): void {URLLoader: URLLoader = new URLLoader (); urlloader.addEventListener (Event.COMPLETE, onLogin) urlloader.load (ny URLRequest ("login.php"));} private funksjon onLogin (e: Hendelses) {try {User.uid = e.target.data} catch (e : UIDError) {trace ("logg inn ugyldig"); }}
Konklusjon