C# 如何使用新的Twilio API检查消息错误?

C# 如何使用新的Twilio API检查消息错误?,c#,twilio,C#,Twilio,我正在将一些使用旧的Twilio C#API的代码升级到新的API,我不明白在现在发送消息之后,您应该如何检查错误。我看到的所有示例都没有错误检查。所以旧代码是这样的: var attemptWithAlphanumericId = client.SendMessage(fromName, to, message); if (attemptWithAlphanumericId.RestException == null) { return !string.Equals(attemptW

我正在将一些使用旧的Twilio C#API的代码升级到新的API,我不明白在现在发送消息之后,您应该如何检查错误。我看到的所有示例都没有错误检查。所以旧代码是这样的:

var attemptWithAlphanumericId = client.SendMessage(fromName, to, message);

if (attemptWithAlphanumericId.RestException == null)
{
    return !string.Equals(attemptWithAlphanumericId.Status, "failed", StringComparison.OrdinalIgnoreCase);
}

if (attemptWithAlphanumericId.RestException.Status == "400"
    && attemptWithAlphanumericId.RestException.Code == "21212")
{
    var attemptWithFallbackNumber = client.SendMessage(fallbackNumber, to, message);

    if (attemptWithFallbackNumber.RestException == null)
    {
        return !string.Equals(attemptWithFallbackNumber.Status, "failed", StringComparison.OrdinalIgnoreCase);
    }

    throw new InvalidOperationException(attemptWithFallbackNumber.RestException.Message);
}

throw new InvalidOperationException(attemptWithAlphanumericId.RestException.Message);
但随着我开始使用的新API样式:

var twilioResponseMessage = MessageResource.Create(
    to: new PhoneNumber(to),
    from: new PhoneNumber(_from),
    body: message
);

。。。响应消息对象上没有
RestException
属性。我该如何检查
RestException
的状态和代码?

这里是Twilio开发者的福音传道者


恐怕我们没有关于发送短信时捕捉错误的具体文档。不过我可以试着举个例子(我不是一个真正的C#开发者,但如果我错了,我打赌Devin可以纠正我这里的Twilio开发者布道者)


恐怕我们没有关于发送短信时捕捉错误的具体文档。不过我可以试着举个例子(我不是真正的C#开发者,但如果我错了,我打赌Devin可以纠正我这是twilio dev网站上的示例:

{
var message=MessageResource.Create(
正文:“这就是使凯塞尔号以14秒的速度运行的那艘船?”,
发件人:new Twilio.Types.PhoneNumber(“+15017122661”),
收件人:新的Twilio.Types.PhoneNumber(“+15558675310”)
);
Console.WriteLine(message.Sid);
}
捕获(APIE)
{
控制台写入线(e.Message);
WriteLine($“Twilio错误{e.Code}-{e.MoreInfo}”);
}

这是twilio开发网站上的示例:

{
var message=MessageResource.Create(
正文:“这就是使凯塞尔号以14秒的速度运行的那艘船?”,
发件人:new Twilio.Types.PhoneNumber(“+15017122661”),
收件人:新的Twilio.Types.PhoneNumber(“+15558675310”)
);
Console.WriteLine(message.Sid);
}
捕获(APIE)
{
控制台写入线(e.Message);
WriteLine($“Twilio错误{e.Code}-{e.MoreInfo}”);
}

新库将引发一个TwilioException,您可以在try/catch块中捕获该异常。是否有关于该异常的文档链接?我现在有:)我们今天刚刚添加了这些。很抱歉,以前没有,这肯定是我们的疏忽。新库将引发TwilioException,您可以在try/catch块中捕获它。有关于该文档的链接吗?我现在有:)我们今天刚刚添加了这些。对不起,以前没有,这绝对是我们的疏忽。我想弄清楚的是,以前做过的事情的新等价物。在此之前,它显然是在检查HTTP 400,然后检查
RestException.code
,然后再检查
Status
是否“失败”。我不确定新API会是什么样子。您检查400错误是因为您试图查看是否需要在不使用字母数字ID的情况下重试。我已经用我认为最好的方法更新了我的答案。@philnash快速入门不再有try/catch示例:(@BarryMSIH你说得对,这里有一个关于处理错误的部分:我想弄清楚的是,以前做过的事情的新等价物。之前,它显然是检查HTTP 400,然后检查
RestException.code
,然后检查
状态
是否“失败”。我不确定新API会是什么样子。您正在检查400错误,因为您试图查看是否需要在不使用字母数字ID的情况下重试。我已经用我认为最好的方法更新了我的答案。@philnash快速入门不再有try/catch示例:(@BarryMSIH你说得对,这里有一个关于处理错误的部分: