Petit conseil Jeter les erreurs de façon propre

Il arrive un moment au cours du développement, en particulier lorsque vous le développez pour d’autres développeurs, que vous pensez "je devrais vraiment anticiper cette erreur". Cette astuce vous montrera comment le faire - de manière propre.


Étape 1: Lancer

Souvent, vous essayez d’anticiper un bogue, mais finissez simplement par le retrouver. Lors du débogage, il serait très utile de créer une exception pour empêcher le code de s'exécuter davantage ou pour expliquer davantage pourquoi l'erreur s'est produite. Pour ce faire, vous devez jeter une erreur de l'utilisateur, ce qui signifie que le lecteur de débogage de Flash sera capable de l'attraper, de même que la console lors de l'exportation directement à partir de Flash Professional.

Disons que je construis une classe d'utilisateurs; c'est une classe statique avec des paramètres comme prénom et le sexe.

Maintenant, disons que je veux attraper si l'utilisateur entre autre chose que M ou F dans son genre:

 package public class User1 privé statique var _name: String; private static var _gender: String; // SETTERS public static nom du jeu de fonctions (name: String): void _name = name;  fonction publique statique définie genre (genre: String): void genre = genre.toUpperCase (); if (gender! = "F" && gender! = "M") émet une nouvelle erreur ("Gender doit être F ou M");  else _gender = genre;  Fonction statique publique get name (): String return _name;  fonction statique publique get gender (): String return _gender; 

En soumettant quelque chose comme User1.gender = "multi", J'ai eu une erreur dans mon débogueur en spécifiant que mon sexe est invalide.


Étape 2: Essayez et attrapez l'erreur

Saisissant ce concept et le développant plus avant, je peux également créer des classes d'erreur personnalisées.

Disons que j'ai une classe UConnection qui gère l'activité de connexion utilisateur comme la connexion. Cette fonction de connexion envoie des informations à une méthode php qui renvoie un identifiant d'utilisateur (dans ce cas, je l'appellerai uid) et vous devez anticiper que l'identifiant n'est pas valide (ce qui signifie que la connexion n'a pas pu être effectuée)..

Ce que vous auriez besoin de créer en premier lieu est une classe d’erreur personnalisée, une classe UIDError..

 package classe publique UIDError extension Error fonction publique UIDError (): void super ("L'ID utilisateur a été invalide"); 

Deuxièmement, une classe qui anticipe et gère l'exception:

 package public class User variable privée privée _uid: int; // SETTER public static function set uid (uid: int): void if (uid == 0) lance un nouveau UIDError ();  else _uid = uid;  // GETTER fonction statique publique get uid (): int return _uid; 

Enfin la mise en place:

 // gardez à l'esprit qu'il s'agit d'un pseudo-code, // cela ne fonctionnera pas car je n'ai pas de login.php // et je n'envoie aucune variable par la poste, // pour une version en cours, reportez-vous aux exemples fournis fonction publique login (un: String; pw: String): void urlloader: URLLoader = new URLLoader (); urlloader.addEventListener (Event.COMPLETE, onLogin) urlloader.load (nouvelle URLRequest ("login.php"));  fonction privée onLogin (e: événement) try User.uid = e.target.data catch (e: UIDError) trace ("login non valide"); 

Le code à l'intérieur du capture le bloc s’exécute s’il remarque que des erreurs ont été commises à l’intérieur du essayer bloc. Dans ce cas, si un UIDError est jeté lors de la tentative de définir User.uid, puis "login invalide" sera tracé. Si un autre type d'erreur est généré, Flash Player réagira normalement..


Conclusion

Voilà donc un moyen simple et clair de gestion des erreurs pour votre code, pour le plaisir du débogage de vos collègues.

J'espère que vous avez aimé ce conseil, merci d'avoir lu!