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

erreurs

parent 595d87a4
Branches
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