Skip to content
Snippets Groups Projects
Commit b7916ae5 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

erreurs

parent 595d87a4
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -22,7 +22,7 @@ sansfont: Sans Serif ...@@ -22,7 +22,7 @@ sansfont: Sans Serif
None, 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 - Exmple: la division
<pre><code data-trim="hljs rust" class="lang-rust"> <pre><code data-trim="hljs rust" class="lang-rust">
...@@ -44,14 +44,14 @@ sansfont: Sans Serif ...@@ -44,14 +44,14 @@ sansfont: Sans Serif
} }
</code></pre> </code></pre>
- Typiquement vos fonctions doivent retourner des `Option`{.rust}. - Il est commun que des fonction retournent des `Option`{.rust}.
# Panique! # Panique!
## `panic!()`{.rust} ## `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}. - Le programme s'arrête et affiche le `"texte"`{.rust}.
- Utilisation: - Utilisation:
- Le programme ne **doit pas** continuer quoi qu'il arrive. - Le programme ne **doit pas** continuer quoi qu'il arrive.
...@@ -123,3 +123,32 @@ sansfont: Sans Serif ...@@ -123,3 +123,32 @@ sansfont: Sans Serif
# Résultat # 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>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment