Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 1
Регистрация: 02.12.2015
Сообщений: 20
1

Исключение Argument Exception

27.12.2015, 03:27. Показов 1788. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа должна открывать txt, rtf, файлы без расширения и файлы с созданным мною расширением, ( что-то вроде (.lala) ).
Но фильтры я выставил так, что видно все файлы абсолютно, и можно, допустим, легко тыкнуть по .exe или .psd или .jpeg и выйдет ошибка "Вызвано исключение: "System.ArgumentException" в System.Windows.Forms.dll"
Как лечить господа? Дело чрезвычайной важности.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            openFileDialog1.Filter = "RTF файлы (*.rtf)|*.rtf|TXT файлы (*.txt)|*.txt|Все файлы (*.*)|*.*";
            openFileDialog1.Title = "Открыть документ";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            { 
                    if (openFileDialog1.FilterIndex == 1 | openFileDialog1.FilterIndex == 3)
                      richTextBox1.LoadFile(openFileDialog1.FileName);
                    else
                    {
                        richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                    }
                    
                }
             }
зы. ругается на строчку
C#
1
richTextBox1.LoadFile(openFileDialog1.FileName);
, естественно, из-за третьего фильтра. Засунул первый и третий в кучу, потому что иначе .rtf открывается неправильно.

Добавлено через 13 минут
Try catch я орудую неумело, вроде как он нужен, но пробовал - не вышло.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2015, 03:27
Ответы с готовыми решениями:

System Argument Exception
в чём ошибка ?

Исключение unknown software exception 0xc0000409
Здравствуйте, уважаемые форумчане! Может ли кто-то проконсультировать меня в следующем вопросе: ...

Исключение Autowired(required=true) Exception
Приветствую уважаемые форумчане. Вот читаю документацию Spring Security, и дошел читать до...

Не получается перехватить исключение, унаследованное от std::exception
#include <iostream> #include <stdexcept> #include <sstream> using namespace std; class...

5
Эксперт .NET
6452 / 4053 / 1599
Регистрация: 09.05.2015
Сообщений: 9,487
27.12.2015, 03:48 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
{
            richTextBox1.Clear();
            openFileDialog1.Filter = "RTF файлы (*.rtf)|*.rtf|TXT файлы (*.txt)|*.txt|Все файлы (*.*)|*.*";
            openFileDialog1.Title = "Открыть документ";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                 try
                 {
                    if (openFileDialog1.FilterIndex == 1 | openFileDialog1.FilterIndex == 3)
                      richTextBox1.LoadFile(openFileDialog1.FileName);
                    else
                    {
                        richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                    }
                 }
                 catch (Exception exc)
                 {
                      // ошибка...
                      string message = exc.Message;
                      // куда нибудь выводим если нужно...
                 }
            }
}
0
1 / 1 / 1
Регистрация: 02.12.2015
Сообщений: 20
27.12.2015, 03:57  [ТС] 3
Ну вроде всё так пишу, добавил
C#
1
MessageBox.Show(" ", message);
и собстна ничего не изменилось
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
27.12.2015, 06:55 4
THEOILMAN, я бы не стал полагаться на FilterIndex для проверки расширения т.к. в поле с именем файла можно ввести любую маску.
C#
1
2
3
4
5
6
7
8
9
10
11
12
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    string ext = Path.GetExtension(openFileDialog1.FileName);
    if (".txt".Equals(ext, StringComparison.OrdinalIgnoreCase))
        richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
    else if (".rtf".Equals(ext, StringComparison.OrdinalIgnoreCase))
        richTextBox1.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.RichText);
    else
    {
        // Неподдерживаемый формат
    }
}
0
1 / 1 / 1
Регистрация: 02.12.2015
Сообщений: 20
27.12.2015, 14:00  [ТС] 5
OwenGlendower, Спасибо конечно, но таким образом я открываю ртф и тхт, но не могу открыть файлы без расширения и т.п.(
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,342
Записей в блоге: 1
27.12.2015, 19:45 6
Лучший ответ Сообщение было отмечено THEOILMAN как решение

Решение

THEOILMAN, значит добавь код который проверит не только расширение, но и формат файла. RTF файл начинается с байтов 7B 5C 72 74 66 (строка {\rtf). Если эти байты есть, то открываем как RTF иначе как plain text.
1
27.12.2015, 19:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2015, 19:45
Помогаю со студенческими работами здесь

исключение unknown software exception (0x0000094) в приложении по адресу
Помогите решить проблему,при работе проекта выдает сообщение об ошибке"исключение unknown software...

Исключение unknown software exception 0xc0000417 в приложении по адресу 0x719f7256
добрый вечер!помогите-при запуске компа всплывает окно:Исключение unknown software...

Исключение unknown software exception 0xc0000417 в приложении по адресу 0x744f7256
При загрузке появляется окно avira antivir personal. Внутри окна сообщение: Исключение unknown...

Исключение: "Syntactically invalid EHLO argument(s)"
Ошибка: Вот мой код: unit Unit1; interface


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru