Страница 1 из 1

KB811324 - Блоки "if-else" непредвиденно выполняют

СообщениеДобавлено: 11.01.2005 (Вт) 13:51
GSerg
Блоки if и else непредвиденно выполняются в Visual Studio .NET 2002
Перевод: GSerg.

СИМПТОМЫ
Код, заключённый в блоки как if, так и else, непредвиденно выполняется при создании консольного приложения Microsoft Visual C# .NET в Microsoft Visual Studio .NET.

ПРИЧИНА
Это поведение возникает в том случае, когда конструкция if-else помещена внутри блока try-catch, а блок finally пуст.

УСТРАНЕНИЕ
Для устранения этой проблемы добавьте любую фиктивную команду в блок finally.

СОСТОЯНИЕ
Майкрософт подтвердила, что это ошибка, которой подвержены продукты, перечисленные в разделе "Применимо к". Эта проблема устранена в Microsoft Visual Studio .NET 2003.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Шаги для воспроизведения ошибки:
  1. Создайте Visual C# .NET Console Application project в Visual Studio .NET 2002.
  2. Замените код в Class1 следующим кодом:
    Код: Выделить всё
    class Test {
      public static void Main() {
        object o = "test";
        if (o is string) {
          try {
            Console.WriteLine("Test");
          }
          finally {
            //Console.WriteLine("Finally.");
          }
        }
        else {
          Console.WriteLine("Shouldn't get here.");
        }
        Console.ReadLine();
      }
    }


ПРИМЕНИМО К:
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual C# .NET 2002 Standard Edition

СообщениеДобавлено: 11.01.2005 (Вт) 14:01
GSerg
Ничё не понимаю...

Словами написано, что "когда конструкция if-else помещена внутри блока try-catch". А в коде наоборот. Так как правильно? :roll:

СообщениеДобавлено: 11.01.2005 (Вт) 16:46
tyomitch
Не знаю... Если бы у меня стоял C#, я бы просто прогнал их тестовый пример, и таким бы образом выяснил, что верно - код или текст.
А так могу только гадать...

СообщениеДобавлено: 11.01.2005 (Вт) 16:55
GSerg
Я послал в мелкософт телегу :razz:

СообщениеДобавлено: 25.01.2005 (Вт) 18:24
GSerg
А они на неё не реагируют... Ну и фиг с ними :)

СообщениеДобавлено: 03.02.2005 (Чт) 19:05
gaidar
Microsoft на такие телеги не реагирует :). Надо писать не в саппорт, а на bug-track сайт. Только по KB его нет.

СообщениеДобавлено: 04.02.2005 (Пт) 4:28
GSerg
Дык там внизу статьи есть форма - чё вы думаете о статье. Там есть вариант - "Information is wrong" и поле для ввода пояснений :)
Я пояснения ввёл, а это пустышка, оказывается :)