diff --git a/errors.md b/errors.md
index 6f7faa8fc24be69f8f747118f64aa538411d3157..f62fd19a66e675c70fe3ecf6c9bd11a56de4d9da 100644
--- a/errors.md
+++ b/errors.md
@@ -22,7 +22,7 @@ sansfont: Sans Serif
 	    None,
 	}
 	```
-- Type utilisé lorsque une valeur peut être "quelque chose" ou "rien".
+- Type utilisé lorsque une valeur peut être "quelque chose" ou "rien" (ex: recherche d'un élément dans un tableau).
 - Exmple: la division
 
 	<pre><code data-trim="hljs rust" class="lang-rust">
@@ -44,14 +44,14 @@ sansfont: Sans Serif
 	}
 	</code></pre>
 
-- Typiquement vos fonctions doivent retourner des `Option`{.rust}.
+- Il est commun que des fonction retournent des `Option`{.rust}.
 
 
 # Panique!
 
 ## `panic!()`{.rust}
 
-- Nous avons vu la macro `panic!("texte")`{.rust}.
+- Nous avons vu le macro `panic!("texte")`{.rust}.
 - Le programme s'arrête et affiche le `"texte"`{.rust}.
 - Utilisation:
 	- Le programme ne **doit pas** continuer quoi qu'il arrive.
@@ -123,3 +123,32 @@ sansfont: Sans Serif
 
 # Résultat
 
+- Pour un traitement plus fin des erreurs l'enum
+
+	<pre><code data-trim="hljs rust">
+	enum Result&lt;T, E&gt; {
+	   Ok(T),
+	   Err(E),
+	}
+	</code></pre> 
+
+- Contient le un élément de type `T` quand tout se passe bien et `E` pour l'erreur.
+
+	<pre><code data-trim="hljs rust" class="lang-rust">
+		fn elem(v: &[i32], i: usize) -> Result&lt;i32, &str&gt; {
+			if i >= v.len() {
+				return Err("Erreur fatale!")
+			} else {
+				Ok(v[i])
+			}
+		}
+
+		fn main() {
+			let v = [1, 2, 3, 4];
+			match elem(&v, 100) {
+				Ok(i) => println!("L'élément est {}", i),
+				Err(_) => println!("Mince ça a raté."),
+			}
+		}
+    </code></pre> 
+