Golang Chaincode发送错误代码和消息

时间:2019-03-22 01:34:31

标签: hyperledger-fabric chaincode

我还想使用shim.Error函数将错误消息以外的错误代码发送到客户端应用程序,但是它仅接受msg参数,该怎么做?

1 个答案:

答案 0 :(得分:1)

shim.Error返回响应结构。

func Error(msg string) pb.Response {
    return pb.Response{
        Status:  ERROR,
        Message: msg,
    }
}

状态设置为ERROR const,定义为500。但是您可以使用任何希望的错误代码,即> = 400。

因此,您可以自己构造响应并设置状态代码,而不是使用Error函数。

return pb.Response{
        Status:  404,
        Message: "Invoke method you wanted to trigger does not exist",
    } 

或者您可以编写自己的Error函数,该函数还接受状态码,并确保其在错误范围内。

最后一个选项是使用响应的Payload属性,并在错误中添加错误的详细信息,包括状态代码。