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

Try catch, защитить программу от падения

26.10.2018, 21:08. Показов 1084. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
string UDPChatWhoIs( string c, string s )
{
    string descr= string();
#ifdef WIN32
    try
    {
        PCHAR msg;
        msg = new char[s.length()+1];
        strcpy(msg,s.c_str());
        PCHAR cn;
        cn = new char[c.length()+1];
        strcpy(cn,c.c_str());
        descr=myudpwhois(cn, msg); // программа падает при выполнении данной функции (исходников данной функции у меня в коде - нет)
    }
    catch (...)
    {
    }
#endif
    return descr;
}
падает программа при выполнении следующей функции
конкретно падает при выполнении myudpwhois
вопрос, можно как-то с помощью try, catch или других способов предотвратить падение программы (descr оставить пустым)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2018, 21:08
Ответы с готовыми решениями:

Как защитить программу?
Пароль можно зашифровать. Только это не спасет от тех кто действительно захочет узнать настоящий пароль. Какие есть хорошие способы защиты?

Защитить программу от артмани.
Как защитить переменные программы от артмани? Пока единственный способ, что я нашёл- создавать для каждой меременной другую, которая...

Защитить программу от копирования
Привет коллеги программисты! Нужен совет от опытных кодеров. Хочу написать одну программулину, что она будет делать - не важно, но важно...

6
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
26.10.2018, 21:43
lallollulz, что бы помайть ошибку в catch сначала нужно быть уверенным что в try вам её бросят. И у вас сам блок поимки опасно составлен, ну и пустой.

Добавлено через 9 минут
Цитата Сообщение от lallollulz Посмотреть сообщение
предотвратить падение программы
писать корректный код, я не совсем знаток, но если Вы где-то падаете в std::terminate() вам никакой try, catch не поможет..
0
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
26.10.2018, 22:40
lallollulz, дебаггерем пройдись.

А так, если, например, там какой-нибудь stackoverflow, то простым try{}catch не обойтись.
0
0 / 0 / 0
Регистрация: 17.02.2017
Сообщений: 65
27.10.2018, 00:13  [ТС]
при отладке дебаггером, сразу после строки в моем коде
C++
1
descr=myudpwhois(cn, msg);
приложение падает и вылетает ошибка: "Необработанное исключение по адресу 0x003DF370 (ucrtbase.dll) в ghost.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x00000000."
если в дебагере перед проблемной строкой юзать шаг с заходом, то сразу же оказываюсь в файлах стандартных библиотек, после несколько шагов оказываюсь в C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14. 15.26726\include\iosfwd:

C++
1
2
3
4
5
#if _HAS_CXX17
        return (__builtin_strlen(_First));
#else /* _HAS_CXX17 */
        return (_CSTD strlen(_First)); // вот на эту строчку жалуется дебагер
#endif /* _HAS_CXX17 */
Добавлено через 4 минуты
мне код ошибки и не нужен, это не основная функция программы - её можно пропустить, т.е. я использую try catch только чтобы предотвратить падение, а узнать что именно за ошибка вылазит мне не нужно.
есть какие-то аналоги трай кетч, или инные способы уберечь программу от падения?
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
27.10.2018, 12:07
lallollulz, Показывайте код этой функции целиком. У вас там ошибка, try-catch вам не поможет. Надо ошибку исправлять.
0
0 / 0 / 0
Регистрация: 17.02.2017
Сообщений: 65
28.10.2018, 15:18  [ТС]
DrOffset, да в том-то и проблема, что эта функция, из-за которой программа крашится, спрятана во внешней либе и доступа к её коду у меня нет.
выяснил в каких случаях (значениях cn, msg) функция приводит к крашу, и прост не вызываю ее
0
 Аватар для PeterVl
15 / 12 / 3
Регистрация: 25.10.2018
Сообщений: 113
28.10.2018, 20:17
Программа в любом случае уже не выполнится, если брошено исключение. Поймав исключение, вы можете его сразу обработать или выбросить "наверх", но в любом случае оно должно быть обработано в каком-нибудь из блоков catch. Например в Java в блоке Catch можно вывести всю информацию об исключении и написать, почему программа "упала".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2018, 20:17
Помогаю со студенческими работами здесь

как защитить программу
можно ли как нибудь защитить данные запиаанные в коде программы такие как для подлючения к базе данных mysql

Как защитить программу?
Всем привет! Народ вопрос такой:написал прогу для одной организации, но договор еще не подписали и программу я им еще не отдал, как сделать...

Переписать программу с использованием Try Catch
Добрый день! написала вот такую программу Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object,...

Как защитить программу от воровства?
Есть программа, как сделать так что б другой человек её не скачал и не сказал что вот вот моя программа? Для этого достаточно написать в...

Защитить свою программу от декомпиляции
Каким образом можно защитить свою программу от декомпиляции? Ну чтобы никто при желании несмог получить исходный код?


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru