将连接的字符串发送到函数并仅返回 Result::Error

问题描述 投票:0回答:1

我有一个带有一些函数的结构,当出现问题时,我调用一个函数

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()

rust
1个回答
0
投票

您可以使用格式宏来连接错误字符串。

format!("{}\n{}", previous_error, new_error);

反之亦然

© www.soinside.com 2019 - 2024. All rights reserved.