Introduction
Dans ce laboratoire, nous explorons les options de stratégie de panique abort et unwind, qui peuvent être utilisées pour gérer les erreurs dans le code Rust.
Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser
main.rs, le compiler et l'exécuter avecrustc main.rs &&./main.
abort et unwind
La section précédente illustre le mécanisme de gestion d'erreurs panic. Différents chemins de code peuvent être compilés conditionnellement en fonction du paramètre de panique. Les valeurs disponibles actuellement sont unwind et abort.
En partant de l'exemple de limonade précédent, nous utilisons explicitement la stratégie de panique pour tester différentes parties de code.
fn drink(beverage: &str) {
// Vous ne devriez pas boire trop de boissons sucrées.
if beverage == "lemonade" {
if cfg!(panic="abort"){ println!("This is not your party. Run!!!!");}
else{ println!("Spit it out!!!!");}
}
else{ println!("Some refreshing {} is all I need.", beverage); }
}
fn main() {
drink("water");
drink("lemonade");
}
Voici un autre exemple qui se concentre sur la réécriture de drink() et utilise explicitement le mot clé unwind.
#[cfg(panic = "unwind")]
fn ah(){ println!("Spit it out!!!!");}
#[cfg(not(panic="unwind"))]
fn ah(){ println!("This is not your party. Run!!!!");}
fn drink(beverage: &str){
if beverage == "lemonade"{ ah();}
else{println!("Some refreshing {} is all I need.", beverage);}
}
fn main() {
drink("water");
drink("lemonade");
}
La stratégie de panique peut être définie à partir de la ligne de commande en utilisant abort ou unwind.
rustc lemonade.rs -C panic=abort
Résumé
Félicitations ! Vous avez terminé le laboratoire Abort et Unwind. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.