var r = new Regex(@"^\s*(?<code>\d+)\s*$", RegexOptions.Singleline);
var match = r.Match(input);
if (match.Success)
{
ulong code;
if (!ulong.TryParse(match.Groups["code"].Value, out code))
{
throw new FormatException(match.Groups["code"].Value);
}
}
По неизвестной мне причине вылетает исключение при этом в строке исключение совершенно пусто.
Есть идеи почему это могло случиться ?
P.S.
Добавил в лог вывод целой строки, но проблема пока не воспроизводится.
Здравствуйте, _NN_, Вы писали:
_NN>Есть простой код
_NN>
_NN>var r = new Regex(@"^\s*(?<code>\d+)\s*$", RegexOptions.Singleline);
_NN>var match = r.Match(input);
_NN>if (match.Success)
_NN>{
_NN> ulong code;
_NN> if (!ulong.TryParse(match.Groups["code"].Value, out code))
_NN> {
_NN> throw new FormatException(match.Groups["code"].Value);
_NN> }
_NN>}
_NN>
_NN>По неизвестной мне причине вылетает исключение при этом в строке исключение совершенно пусто. _NN>Есть идеи почему это могло случиться ?
_NN>P.S. _NN>Добавил в лог вывод целой строки, но проблема пока не воспроизводится.
Ну если match.Groups["code"].Value == String.Empty, то все логично.
Кодом людям нужно помогать!
Re[2]: Что может случиться с регулярным выражением
Здравствуйте, Sharov, Вы писали:
S>Ну если match.Groups["code"].Value == String.Empty, то все логично.
Есть идеи как может быть пустым в случае "\d+" ?
Здравствуйте, _NN_, Вы писали:
_NN>Здравствуйте, Sharov, Вы писали:
S>>Ну если match.Groups["code"].Value == String.Empty, то все логично. _NN>Есть идеи как может быть пустым в случае "\d+" ?
А группа match.Groups["code"] точно не null? Можно пример вх. строки?
Кодом людям нужно помогать!
Re[4]: Что может случиться с регулярным выражением
Здравствуйте, _NN_, Вы писали:
_NN>По неизвестной мне причине вылетает исключение при этом в строке исключение совершенно пусто. _NN>Есть идеи почему это могло случиться ?
А в реальном коде точно так же, как с примером, т.е. регекс конструируется строго на каждый матч?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Здравствуйте, _NN_, Вы писали:
S>>А группа match.Groups["code"] точно не null? Можно пример вх. строки?
_NN>Я не знаю какая строка, в этом и вопрос. _NN>Пример обычной строки "1234".
а если в ulong не влезла?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, _NN_, Вы писали:
_NN>По неизвестной мне причине вылетает исключение при этом в строке исключение совершенно пусто. _NN>Есть идеи почему это могло случиться ?
Чудесато. input не может параллельно из другого потока поменяться?
"Будь достоин победы" (c) 8th Wizard's rule.
Re[6]: Что может случиться с регулярным выражением
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, _NN_, Вы писали:
_NN>>По неизвестной мне причине вылетает исключение при этом в строке исключение совершенно пусто. _NN>>Есть идеи почему это могло случиться ?
AVK>А в реальном коде точно так же, как с примером, т.е. регекс конструируется строго на каждый матч?
Regex создается только один раз.
Неужели это может влиять ?
Здравствуйте, _NN_, Вы писали:
AVK>>А в реальном коде точно так же, как с примером, т.е. регекс конструируется строго на каждый матч? _NN>Regex создается только один раз. _NN>Неужели это может влиять ?
А он вызывается из одного потока, или из нескольких?
Re[4]: Что может случиться с регулярным выражением
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, _NN_, Вы писали:
AVK>>>А в реальном коде точно так же, как с примером, т.е. регекс конструируется строго на каждый матч? _NN>>Regex создается только один раз. _NN>>Неужели это может влиять ? S>А он вызывается из одного потока, или из нескольких?
Один поток.
var r = new Regex(@"^\s*(?<code>\d+)\s*$", RegexOptions.Singleline);
var match = r.Match(input);
if (!match.Success)
{
if (log.IsTraceEnabled)
{
log.Trace("Ignoring bad input");
return false;
}
}
ulong code;
if (!ulong.TryParse(match.Groups["code"].Value, out code))
{
throw new FormatException(match.Groups["code"].Value);
}
Смотрели всей командой раз 10 и только на 11-й раз наконец дошло что происходит
Здравствуйте, _NN_, Вы писали:
_NN>Смотрели всей командой раз 10 и только на 11-й раз наконец дошло что происходит
Эталонный гейзенбаг Веселее — разве что методы вида