Nothing forces you to panic in Rust any more than anything forces you to call abort() in C.
let a = b.unwrap();
is conceptually no different to: if (b == NULL) {
abort();
}
a = *b;
don't write either if you don't want to halt.