我在下面创建了此方法,该方法对第三方API进行HTTP调用。我只想就我是否以最好的方式处理这个问题发表意见。如果调用失败,则只有在响应不为空时,我才需要返回ExistsInList布尔值。但在最后一个return语句中,我不必基本上做另一个返回selectResponse == null吗? false:selectResponse.ExistsInList;首先检查null,就像之前的catch返回一样?处理来自Web Service Call Wrapper的返回值
刚才似乎多余的方式我接近这一点,我不知道我是否真的需要在最终的回报中再次检查null,但我认为是的,因为你不能总是依靠响应给予即使没有发现错误,您也可以获得有效的答复。
public static bool UserExistsInList(string email, string listID)
{
SelectRecipientRequest selectRequest = new SelectRecipientRequest(email, listID);
SelectRecipientResponse selectResponse = null;
try
{
selectResponse = (SelectRecipientResponse)selectRequest.SendRequest();
}
catch (Exception)
{
return selectResponse == null ? false : selectResponse.ExistsInList;
}
return selectResponse.ExistsInList;
}
是的,任何不是'throw;'en的异常都必须记录下来。 – Nate 2010-06-15 20:29:00
好的,但我不想在这里停止我的整个应用程序,如果我在这种情况下得到一个异常,因为我不在乎这里是否有异常...这对于这种依赖于业务逻辑/场景的特定方法是无关紧要的 – PositiveGuy 2010-06-15 20:50:42
我同意你和Nate的看法......谢谢你,经验值得记住。但是如果我们不关心它们,我们不想记录异常。例如,如果第二次呼叫失败,那没关系,这只是意味着它们不在禁止列表中,这很好。我们只是做一个快速检查,看看是否有人在那里,如果是这样做一点清理并删除该记录。如果它不存在或者SelectResponse失败,我们可以稍后重试,但如果失败则不是关键,因为它仅仅是为了清理目的而对它们的记录进行检查。我们不需要看到大量的错误。 – PositiveGuy 2010-06-15 20:52:37