← Zurück

Исключение ArgumentNullException в классе PnLManager в методе ProcessMessage()

Продолжаем парад багов. Устойчиво воспроизводится на QUIK 8.5.

В случае если сообщение о выполненной сделке приходит быстрее, чем об изменении статуса Order, в котором он получает свой биржевой идентификатор, в методе PnLManager.ProcessMessage() генерируется исключение. Проблема в том, что там есть код, который рассчитывает, что к моменту обработки сообщения точно будет известен идентификатор заявки. И это никак не контролируется.

Выпадает на строчке: else if (!execMsg.OrderStringId.IsEmpty()), т.к. у заявки OrderStringId равен null

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (2)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

Отличный баг репорт. Фикс залил. Продолжайте в том же духе.

Alexander
Alexander Autor

Спасибо за быструю реакцию.