Более поздний код, влияющий на более ранний код, отладчик, входящий в блок кода, который он не должен вводить

У меня есть следующий код...

var len = request.Code.Trim().Length;
if (len.Equals(0))
{
    throw new ArgumentOutOfRangeException("request.Code");
}

try
{
    var obj = _repository.GetSomething(request.Code);
    return Result.Success(obj);
}
catch (Exception)
{
    return Result.Failure(MessageCode.MissingData);
}

Я бегу через этот код с помощью отладчика (через модульный тест), и он идет в if (len.Equals(0)) блок, когда len равен 3. Я также попытался изменить операторы if на if (string.IsNullOrWhitespace(request.Code)) и я получаю ту же проблему.

Если я удаляю try / catch и оставляю только код в блоке try, все в порядке.

Итак, кто-нибудь может объяснить, что здесь происходит?

РЕДАКТИРОВАТЬ: Чтобы уточнить значение request.Code - "WH1", следовательно, len - 3. Это то, что говорит мне отладчик перед тем, как я попытаюсь перешагнуть оператор if.

РЕДАКТИРОВАТЬ 2: я получил провальный тест, который привел меня к отладке этого кода. Но теперь, когда тест пройден, я изменил другой фрагмент кода, не показанный в моем вопросе. Все мои тесты проходят сейчас, но когда я отлаживаю через него, отладчик все равно выглядит так, как будто он выполняет бросок в первом блоке if. Очень запутанно, но если я перейду к заявлению, оно будет продолжаться, как я и ожидал.

Похоже, это какая-то ошибка в отладчике, поскольку код не выполняется, просто курсор переходит к этому коду и ничего с ним не делает.

2 ответа

Решение

Код вообще не запускался, отладчик просто шел к этой строке, но фактически не выполнял код.

Я сталкивался с этим раньше, если код не соответствует отлаживаемому коду. Отлаживаете ли вы процесс с помощью "Присоединить к процессу" или просто заходите в меню "Отладка" и выбираете "Начать отладку" (F5)? Является ли код, который вы показываете выше, частью проекта, который вы отлаживаете, или он находится в связанной сборке?

Вы также можете попробовать сделать перестройку всего решения.

Другие вопросы по тегам