Capturando a Resolução da Pilha (Stack Unwinding)

Por padrão, um pânico causará a resolução da pilha. A resolução pode ser capturada:

use std::panic;

fn main() {
    let result = panic::catch_unwind(|| {
        println!("olá!");
    });
    assert!(result.is_ok());
    
    let result = panic::catch_unwind(|| {
        panic!("ah não!");
    });
    assert!(result.is_err());
}
  • Isso pode ser útil em servidores que devem continuar rodando mesmo se uma requisição tenha falhado.
  • Isso não funciona se panic = 'abort' estiver definido em seu Cargo.toml.