Home » Blog » Programmation » Gestion des erreurs dans votre code

Gestion des erreurs dans votre code

Posté dans : Programmation 0

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.