Gestion des erreurs dans votre code
Cet article fait suite à une première que vous pourrez lire sur notre site.
Partie 1 - Hello World :
http://www.elementaryos-fr.org/bonjour-monde-vala/
Dans cette deuxième partie, nous allons voir comment gérer les éventuelles erreurs générées par votre code.
Prenons ce code :
public static void main (string[] args) { string contents; FileUtils.get_contents ("/uri/to/path.txt", out contents); }
si le chemin '/uri/to/path.txt' n'existe pas, vous aurez cette erreur :
** (process:29257): CRITICAL **: file main.vala.c: line 27: uncaught error: Failed to open file '/uri/to/path.txt': No such file or directory (g-file-error-quark, 4)
pour palier ce problème, il faudra "attraper" cette erreur. Pour cela on utilise les mots-clé "try" et "catch" :
public static void main (string[] args) { string contents; try { FileUtils.get_contents ("/uri/to/path.txt", out contents); } catch { print ("une erreur s'est produite !\\n"); } }
Le soucis est que si vous souhaiter avoir l'information de l'erreur vue plus haut, vous devez capturer un type d'erreur spécifique. la fonction FileUtils.get_contents lance une erreur de type GLib.FileError. On indique donc à "catch" ce type :
public static void main (string[] args) { string contents; try { FileUtils.get_contents ("/uri/to/path.txt", out contents); } catch (FileError fe) { print (fe.message + "\\n"); } }
Il se peut que plus tard dans vos codes, il y est à gérer différents types d'erreurs. Dans ce cas il faut capturer le type commun à toutes ces erreurs "GLib.Error".
Il se peut aussi que vous vouliez lancer une erreur dans votre code à un moment. Pour cela il faut utiliser la fonction
error ("texte de l'erreur");.
La création d'erreurs personnelles se verra ultérieurement.
La troisième partie sera consacrée à la création de classes.
Le billet Gestion des erreurs dans votre code a été publié sur elementary OS Fr - Communauté francophone d'elementaryOS