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

Vus : 763
Publié par elementary OS : 374