Ошибка при использовании диалоговых окон
Здравствуйте. В моей программе присутствует функция открытия файла через диалоговое окно. Пробую запускать программу в XP и ниже не работает, вываливается необрабатываемое исключение (обработку исключений я еще не реализовывал). А в чем собственно подвох? Visual Studio 2008. C#
|
Цитата:
Цитата giv5dot26
(обработку исключений я еще не реализовывал). »
|
а что там реализовывать?
Код:
try
{
твой код по открытию
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
И выдаст сообщение, в чем дело.
|
Сделал, не выдает. выскакивает тоже окошко времени выполнения и все.
|
Код:
try
{
DlgOpenFile.ShowDialog();
y = DlgOpenFile.FileNames.Count() - 1;
}
catch (PlatformNotSupportedException ex)
{
MessageBox.Show(ex.Message);
return;
}
if (!FileOpened)
return;
if (y >= 18)
{
MessageBox.Show("Нужно выбрать не более 18 файлов!");
FileOpened = false;
return;
}
for (x = 0; x <= y; x++)
{
Foo(DlgOpenFile.FileNames[x]);
}
|
PlatformNotSupportedException ex - а зачем ты используешь этот класс ошибки - не лучше ли использовать класс-родитель Exeption как тебе советовали.
|
giv5dot26, для отладки приложений всегда лучше использовать класс-родитель Exception - в таком случае ты 100%-но получишь код и описание ошибки. После получения ошибки и класса потомка-Exception уже можно будет раскидывать catch по разным исключениям. А PlatformNotSupportedException ты получишь в крайне редких случаях.
|
Проверив на нескольких машинах понял что это из-за отсутствия .Net framework 3.5, а я как то даже и не подумал про него. Подскажите какое исключение используется в подобных случаях?
|
giv5dot26, а для чего используется Net framework 3.5 в приложении? Просто потому, что студия так предложила? В большинстве приложений достаточно использовать Net framework 2.0.
Net framework 3.5 достаточно объемен и его использование в ряде случаев является необязательным. В частности, приведенный тобою код будет нормально работать и на версии 2.0, который автоматом включен в Windows 7(в XP нет).
Цитата:
Цитата giv5dot26
Подскажите какое исключение используется в подобных случаях »
|
В данном случае нет исключения, необходимо просто проверять версию установленного Net framework. Делается это во время создания инсталлятора.
Попробуй выставить в свойствах проекта Net framework 2.0 и перекомпилировать приложение.
|
Попробую, но раз на XP нет все равно будут проблемы.
|
giv5dot26, фреймворк 2 весит 20Мб, а 3.5 - уже за 300. Что проще и быстрее поставить? :)
А если уж пишешь под .Net, привыкай, что требование в виде фреймворка будут обязательны :)
|
Время: 09:36.
© OSzone.net 2001-