我有一个带有一些函数的结构,当出现问题时,我调用一个函数
fn set_error(&self,msg:&str)
来记录错误并可能显示错误消息等。
目前这非常简单,我在其他函数中使用它如下:
pub fn somefunction(&self) {
...some code...
if error == true {
self.set_error("The error message");
Err("The error message")
}else{
Ok("All ok")
}
}
首先,它对于
set_error()
函数以某种方式返回 Result::Error 对象可能很有用,因此调用 set_error()
与: 相同
self.set_error("The error message");
Err("The error message")
另一种方法可能是从
set_error()
函数再次返回错误字符串,以便能够执行以下操作:
Err( self.set_error("The error message") )
另外,是否有一种简单/好的方法来连接/连接发送到
set_error()
函数的字符串(String、&str 等)?例如,在 match-Err 中可能有一个 std::io::error ,也可能有一个 u32 我想要做的事情:
self.set_error("A lvl 10 Error occured: " + err.to_string() + ". UserId:" + user_id.to_string() + ". Some other info...");
这个想法取自 PHP,可以通过简单的方式在函数调用中创建错误字符串。
set_error()
函数如何处理我的场景中的错误,以及如何以良好的方式构建错误消息,发送到set_error()
?
您可以使用格式宏来连接错误字符串。
format!("{}\n{}", previous_error, new_error);
反之亦然