Cet article fait suite à une première que vous pourrez lire sur notre site.
Partie 1 – Hello World :
https://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.