Abort y Desenrollar

Beginner

This tutorial is from open-source community. Access the source code

Introducción

En este laboratorio, exploramos las opciones de estrategia de pánico abort y unwind, que se pueden utilizar para manejar errores en el código Rust.

Nota: Si el laboratorio no especifica un nombre de archivo, puede utilizar cualquier nombre de archivo que desee. Por ejemplo, puede utilizar main.rs, compilar y ejecutarlo con rustc main.rs &&./main.

abort y unwind

La sección anterior ilustra el mecanismo de manejo de errores panic. Diferentes caminos de código pueden ser compilados condicionalmente basados en la configuración de panic. Los valores disponibles actualmente son unwind y abort.

Basado en el ejemplo anterior de limonada, usamos explícitamente la estrategia de panic para probar diferentes líneas de código.


fn drink(beverage: &str) {
   // No deberías beber demasiadas bebidas azucaradas.
    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");
}

Aquí hay otro ejemplo que se centra en reescribir drink() y usar explícitamente la palabra clave 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 estrategia de panic se puede configurar desde la línea de comandos usando abort o unwind.

rustc lemonade.rs -C panic=abort

Resumen

¡Felicitaciones! Has completado el laboratorio de Abort y Unwind. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.