Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
5 / 5 / 3
Регистрация: 31.07.2013
Сообщений: 98

Конструкция Try - Catch выдает ошибку в приведенном коде

03.12.2013, 18:00. Показов 920. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.Делаю лаунчер и возникла необходимость загрузки файла(архива),для того чтобы программа не выбивала ошибку я собрал два блока try & catch.Но вот проблема:При любом исходе загрузки вылетает условие catch.Понимаю что очень сильно накосячил.Подскажите в чем проблема?
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
if (Directory.Exists(GetVersion()))
                {
                    ///////////////////////////////////////////////////////////////////////////////
                    try
                        {
                          WebClient update = new WebClient();
                           update.DownloadFile(url, SavePath); //Загрузка архива
                            ZipFile unpack = new ZipFile(SavePath);
                            unpack = ZipFile.Read(SavePath);
                            unpack.ExtractAll(GetVersion());
                            unpack.Dispose();
                            FileInfo fi = new FileInfo(CheckInstallVersion());
                            long size = fi.Length;
                            if (Server_Change.Text == "Hitech (PvP)" | Server_Change.Text == "Hitech (PvE)") { LengthHiTech = size; }
                            if (Server_Change.Text == "SandBox (PvP)" | Server_Change.Text == "SandBox (PvE)") { LengthHiTech = size; }
                            if (Server_Change.Text == "RPG(PvP)") { LengthHiTech = size; }
                            status = true;
                            return status;
                        }
                    catch (Exception FileLoadException) //Обработка исключений
                        {
                            MessageBox.Show("Файл " + SavePath + " не найден на сервере!Для просмотра детальной ошибки просмотрите файл ErrorLog.txt", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            FileInfo delfi = new FileInfo("ErrorLog.txt");
                            delfi.Delete();
                            StreamWriter sw;
                            FileInfo fi = new FileInfo("ErrorLog.txt");
                            sw = fi.AppendText();
                            sw.WriteLine(FileLoadException);
                            sw.Close();
                            status = false;
                            return status;
                        }
                    ///////////////////////////////////////////////////////////////////////////////
                    
                }
                else
                {
                    ///////////////////////////////////////////////////////////////////////////////
                    try
                        {
                    WebClient update = new WebClient();
                    update.DownloadFile(url, SavePath); //Загрузка архива
                    Directory.Delete(GetVersion());
                    Directory.CreateDirectory(GetVersion());
                    ZipFile unpack = new ZipFile(SavePath);
                    unpack = ZipFile.Read(SavePath);
                    unpack.ExtractAll(GetVersion());
                    unpack.Dispose();
                    FileInfo fi = new FileInfo(CheckInstallVersion());
                    long size = fi.Length;
                    if (Server_Change.Text == "Hitech (PvP)" | Server_Change.Text == "Hitech (PvE)") { LengthHiTech = size; }
                    if (Server_Change.Text == "SandBox (PvP)" | Server_Change.Text == "SandBox (PvE)") { LengthHiTech = size; }
                    if (Server_Change.Text == "RPG(PvP)") { LengthHiTech = size; }
                    status = true;
                    return status;
                    }
                    catch (Exception FileLoadException) //Обработка исключений
                    {
                        MessageBox.Show("Файл " + SavePath + " не найден на сервере!Для просмотра детальной ошибки просмотрите файл ErrorLog.txt", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        FileInfo delfi = new FileInfo("ErrorLog.txt");
                        delfi.Delete();
                        StreamWriter sw;
                        FileInfo fi = new FileInfo("ErrorLog.txt");
                        sw = fi.AppendText();
                        sw.WriteLine(FileLoadException);
                        sw.Close();
                        status = false;
                        return status;
                    }
                    ///////////////////////////////////////////////////////////////////////////////
                
            }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2013, 18:00
Ответы с готовыми решениями:

Конструкция try catch в цикле while. Зацикливается блок catch
Здравствуйте. Столкнулся с проблемой: при попытке запихнуть в цикл конструкцию try catch - зацикливается часть, расположенная в блоке...

Исправить ошибку в приведенном коде
{ class Program { public struct Point { public int X; public int Y; ...

Исправить ошибку в приведенном коде
#include "ntddk.h" NTSTATUS CompleteIrp( PIRP pIrp, NTSTATUS status, ULONG info) { pIrp->IoStatus.Status = status; //...

2
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
03.12.2013, 18:16
Зачем в try/catch столько кода заключать? Сделай рефакторинг и найди ошибку
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
03.12.2013, 20:15
Nitrogen_52rus, укажите полный текст ошибки и в какой строке она вылетает. Это всё есть в экземпляре FileLoadException
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2013, 20:15
Помогаю со студенческими работами здесь

Исправить ошибку в приведенном коде
namespace Programming_C_Sharp { using System; class Test { int hour = 0; public int Hour { get

Найти ошибку в приведенном коде
void Print(int a) { cout << "int : "<< a; } void Print (float b) { cout << " Float : " << b; } void...

Найти ошибку в приведенном коде
Windows выдает ошибку, почему ? #include <iostream> #include <cstring> #include <cstdlib> using namespace std; class...

Исправить ошибку в приведенном коде
всем доброго времени суток..) возникла проблема..есть код обработки событий по нажатию клавиш..ошибок при записи кода нет, при компиляции...

Найти ошибку в приведённом коде
#include <stdio.h> #include <conio.h> const double g=9.8 int main () { float m,h,E; printf ("vvedite m,h"); scanf...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru