Vous êtes sur la page 1sur 27

Année universitaire 2023-2024

5. Traitement des erreurs


Rust a un système de traitement des erreurs qui garantit que toutes les
erreurs sont gérées de manière sure et cohérente. Cela évite les problèmes
de corruption de la mémoire et de fuites de ressources.
En Rust, les erreurs sont représentées sous forme de types, qui permettent
de les classifier et de les traiter de manière cohérente. Voici les principaux
types d’erreurs en Rust :

1
Année universitaire 2023-2024

5. Traitement des erreurs

2
Année universitaire 2023-2024

5. Traitement des erreurs

3
Année universitaire 2023-2024

5. Traitement des erreurs

4
Année universitaire 2023-2024

5. Traitement des erreurs


Rust classe aussi les erreurs dans deux catégories principales : les
erreurs récupérables et irrécupérables.
 les erreurs récupérables, comme l'erreur le fichier n'a pas été trouvé, nous
préférons probablement signaler le problème à l'utilisateur et relancer
l'opération.
Les erreurs irrécupérables sont toujours des symptômes de bogues, comme
par exemple essayer d'accéder à un élément en dehors de l'intervalle de
données d'un tableau, et alors dans ce cas nous voulons arrêter
immédiatement l'exécution du programme.
5
Année universitaire 2023-2024

5. Traitement des erreurs


La plupart des langages de programmation ne font pas de distinction entre
ces deux types d'erreurs et les gèrent de la même manière, en utilisant des
fonctionnalités comme les exceptions. Rust n'a pas d'exception. À la place, il a
les types Result<T, E> pour les erreurs récupérables, et la macro panic! qui
arrête l'exécution quand le programme se heurte à des erreurs
irrécupérables.

6
Année universitaire 2023-2024

5. Traitement des erreurs


Les erreurs récupérables:

Ils sont des erreurs qui peuvent être traitées par le programme. Par
exemple, une erreur de lecture de fichier est récupérable, car il est
possible de prendre des mesures pour tenter de résoudre le problème.
Les erreurs récupérables sont généralement représentées par la structure
Result<T, E>, ou T représente la valeur renvoyée si l’opération a réussi et E
représente le type de l’erreur renvoyée si l’opération a échoué.

7
Année universitaire 2023-2024

5. Traitement des erreurs


Les erreurs récupérables:

8
Année universitaire 2023-2024

5. Traitement des erreurs


Les erreurs irrécupérables:

Ils sont des erreurs qui ne peuvent pas être traitées par le programme. Par
exemple, une division par zéro est une erreur irrécupérable, car il n’y a pas
de moyen de la corriger.
En Rust, les erreurs irrécupérables sont représentées par la macro panic
!(), qui arrête immédiatement l’exécution du programme et affiche un
message d’erreur.
En Rust, il est possible de provoquer une panique avec deux manières
différentes :

9
Année universitaire 2023-2024

5. Traitement des erreurs


Les erreurs irrécupérables:

Panic automatique:

Le panic automatique est déclenché automatiquement lorsque le


programme détecte une erreur qui ne peut pas être traitée de manière
normale et provoque l’arrêt de programme.

10
Année universitaire 2023-2024

5. Traitement des erreurs


Les erreurs irrécupérables:

Panic automatique:

11
Année universitaire 2023-2024

5. Traitement des erreurs


Les erreurs irrécupérables:

Panic manuelle:

Ce type de panic est déclenche intentionnellement par le programmeur en


appelant explicitement la fonction panic!().

12
Année universitaire 2023-2024

5. Traitement des erreurs


Les erreurs irrécupérables:

Panic manuelle:

13
Année universitaire 2023-2024

5. Traitement des erreurs


L’utilisation des opérateurs «unwarp » et «expect »:

Dans certaines situations, il est possible de garantir que la valeur de retour


sera une valeur « Ok(T) ».
L’opérateur « unwrap » renvoie la valeur de retour si elle est de type
«Ok(T) »,sinon il déclenche une erreur de panique. L’operateur «expect »
est similaire a « unwrap », mais il permet de spécifier un message d’erreur
personnalise en cas de panique.

14
Année universitaire 2023-2024

5. Traitement des erreurs


L’utilisation des opérateurs «unwarp » et «expect »:

15
L’écosystème de RUST

Enseignant: Mohamed Anouar Borgi

16
Année universitaire 2023-2024

Plan
1. Introduction

2. Le paquet Cargo et ses composantes

3. La bibliothèque standard de Rust

4. Les bibliothèques externes de Rust

5. Les Modules Tokio

17
Année universitaire 2023-2024

1. Introduction

Rust est un langage de programmation qui offre une expérience de


développement sécurisée et performante. Son écosystème dynamique
comprend le compilateur Rust et le gestionnaire de paquets Cargo. Le
compilateur Rust garantit la sécurité de la mémoire et détecte les erreurs
potentielles avant l’exécution du programme.

18
Année universitaire 2023-2024

1. Introduction

Cargo facilite la gestion des dépendances et l’automatisation des taches de


construction et de déploiement. L’ecosystème comprend également de
nombreuses bibliothèques et Frameworks prêts a l’emploi, permettant aux
développeurs de gagner du temps et de bénéficier de l’expertise collective
de la communauté Rust.

19
Année universitaire 2023-2024

2. Le paquet Cargo et ses composantes

Rust est un langage de programmation qui offre une expérience de


développement sécurisée et performante. Son écosystème dynamique
comprend le compilateur Rust et le gestionnaire de paquets Cargo. Le
compilateur Rust garantit la sécurité de la mémoire et détecte les erreurs
potentielles avant l’exécution du programme.

20
Année universitaire 2023-2024

2. Le paquet Cargo et ses composantes


Cargo c’est quoi?:

Cargo est le gestionnaire de paquets et de compilation de Rust. Il fait


partie intégrante de l’ecosystème de Rust et simplifie grandement la
gestion des dépendances, la compilation des projets et la gestion des
taches courantes liées au développement en Rust.

21
Année universitaire 2023-2024

2. Le paquet Cargo et ses composantes


Cargo c’est quoi?:

L’une des principales fonctionnalités de Cargo est la gestion des


dépendances. Lorsque vous développez un projet Rust, vous pouvez
spécifier les bibliothèques tierces dont votre projet dépend dans un fichier
appelé ≪ Cargo.toml ≫. Cargo se charge ensuite de télécharger et
d’installer automatiquement les dépendances nécessaires a votre projet.
Cela facilite l’intégration de fonctionnalités prêtes a l’emploi sans avoir a
réinventer la roue a chaque fois.

22
Année universitaire 2023-2024

2. Le paquet Cargo et ses composantes

Cargo c’est quoi?:

Un paquet Cargo désigne une unité de code dans un projet Rust,


accompagnée de ses dépendances et de son fichier de configuration. Voici
les principaux composants d’un paquet Cargo dans un nouveau projet :

23
Année universitaire 2023-2024

2. Le paquet Cargo et ses composantes

24
Année universitaire 2023-2024

2. Le paquet Cargo et ses composantes

25
Année universitaire 2023-2024

3. La bibliothèque standard de Rust

26
Année universitaire 2023-2024

3. La bibliothèque standard de Rust

27

Vous aimerez peut-être aussi