Отладка-Выполнение Приключение - PullRequest
0 голосов
/ 06 мая 2011

Я отладил свой код Java.Это не дало никаких ошибок. Но когда я выполнил это (это также не дает ошибок, но) код не завершился успешно.Это очень смешноНо возможно ли это вообще?

Ответы [ 3 ]

1 голос
/ 06 мая 2011

Да, возможно, что код работает при отладке и не работает при запуске. Две возможные причины, о которых я могу думать прямо сейчас:

  • Параллелизм в случае многопоточности: если ваш отладчик останавливается на точке останова, время между несколькими потоками может измениться, что может повлиять на поведение
  • При отладке вы можете запускать определенные части кода несколько раз (чаще, чем когда он был выполнен без отладки), как, например, с помощью метода toString или с помощью проверок или настроив какое-то выражение наблюдения
1 голос
/ 06 мая 2011

Да, ваш код может быть синтаксически правильным (и, следовательно, может выполняться без ошибок), но может быть семантически неверным.

Допустим следующее:

public int add( int operand1, int operand2)
{
   return operant1 - operand2;
}

Это будет работать без ошибок, но все равно будет некорректно из-за логики / ошибки реализации.

Таким образом, можно получить неправильные результаты, если код работает нормально.

1 голос
/ 06 мая 2011

Конечно, когда замедление, введенное отладчиком, маскирует некоторые условия гонки, но это обычно относится только к многопоточному или сетевому коду.

...