Capturar el Desenrrollado de la Stack

De forma predeterminada, el panic hará que la stack se desenrolle. El proceso de desenrrollado se puede detectar:

use std::panic;

fn main() {
    let result = panic::catch_unwind(|| {
        println!("hello!");
    });
    assert!(result.is_ok());
    
    let result = panic::catch_unwind(|| {
        panic!("oh no!");
    });
    assert!(result.is_err());
}
  • Esto puede ser útil en los servidores que deben seguir ejecutándose aunque una sola solicitud falle.
  • No funciona si panic = 'abort' está definido en Cargo.toml.