double.Parse не удается на NaN - PullRequest
4 голосов
/ 15 июля 2011

В моем приложении для формы 3.5 с пакетом обновления 1 (SP1) следующие строки не работают с исключением формата.

Double.Parse(double.NaN.ToString(CultureInfo.InvariantCulture),CultureInfo.InvariantCulture);

Double.Parse(double.NaN.ToString());

Что здесь может происходить?

Обновление:

Исключение формата возникает, только когда вы запускаете приложение из Visual Studio (2010) и включаете уведомление об исключении времени выполнения общего языка ( Debug-> Exceptions ... ).

Ответы [ 2 ]

5 голосов
/ 15 июля 2011

Я думаю, что исключение создается (и перехватывается) внутри самой .NET Framework.Если вы запустите программу за пределами Visual Studio, вы не должны заметить никаких проблем.

Я могу воспроизвести это, но если установить флажок «Включить только мой код (только для управляемого)» в параметрах отладки для Visual StudioЯ больше не вижу исключения.

1 голос
/ 15 июля 2011

Это прекрасно работает для меня без исключений.

Если то, что вы говорите, является правдой (это происходит только тогда, когда включено оповещение об исключениях во время выполнения Common Language), то это внутреннее исключение, которое выдается, а затем перехватывается и обрабатывается в среде .Net, поэтому вам не следует слишком беспокоиться о.

Обратите внимание, что когда возникает исключение, строка подсвечивается зеленым цветом (не оранжевым), чтобы указать, что это просто уведомление о возникновении исключения, а не остановка отладчиком необработанного исключения.

Exception

...