我有一小段代码,如果函数失败,我想用它来记录错误和死机,但我似乎无法让它工作,因为我得到了"Match Arm Has Compatible Types..."错误.
我知道我应该提供这些值,但有没有办法不这样做,因为我们无论如何都在panic 呢?
或者,或许还有其他办法?我试图记录一个错误,并且仅使用.expect
个死机,但没有生成合适的日志(log),或者没有执行我们需要的任何其他工具.
// this is in my instrumentation crate
pub fn handle_error(panic_msg: &str, process: &str, status: &str, error: Box<dyn Error>) {
event!(Level::ERROR, process=process, status=status, error);
panic!("{}", panic_msg);
}
fn main() {
let (val1, val2, val3) = match function_call(user_id).await {
Ok(x) => x,
Err(e) => instrumentation::handle_error("panic", "proc", "failed", Box::new((e))),
};
}