Я создал этот метод, ниже который делает HTTP-вызов сторонним API. Я просто хочу, чтобы мнения были, если я обрабатываю это наилучшим образом. Если вызов завершается с ошибкой, мне нужно вернуть значение bool ExistsInList только в том случае, если ответ не равен нулю. Но в последнем утверждении return, не нужно ли мне по существу делать другой возврат selectResponse == null? false: selectResponse.ExistsInList; сначала проверить нулевое значение, как предыдущее возвращение в catch?Обработка возвращаемого значения из веб-службы Call Wrapper
Просто кажется излишним, как я подхожу к этому, и я не знаю, действительно ли мне нужно снова проверить нулевое значение в конечном возвращении, но я считаю, что да, потому что вы не всегда можете полагаться на ответ, чтобы дать вы действительный ответ, даже если ошибок не было.
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;», должны быть зарегистрированы. – Nate
ОК, но я не хочу останавливать все свое приложение здесь, если в этом случае получаю исключение, потому что мне все равно, если я получаю исключение здесь ... это не имеет значения для этого конкретного метода, зависящего от бизнес-логики/сценария – PositiveGuy
Я согласен с вами и Нейтом ... спасибо, хорошее эмпирическое правило, чтобы помнить. Но мы не хотим регистрировать исключения, если мы не заботимся о них. Например, если этот второй вызов терпит неудачу, все в порядке, это просто означает, что они не находятся в списке подавления, и это нормально. Мы просто делаем быструю проверку, чтобы увидеть, есть ли там, и если да, сделайте небольшую очистку и удалите эту запись. Если он не существует или сбой SelectResponse, мы можем просто повторить попытку позже, но это не критично, если он терпит неудачу, потому что это просто проверка записи на их конце для целей очистки. Нам не нужно видеть тонну этих ошибок. – PositiveGuy