0 / 0 / 0
Регистрация: 17.02.2017
Сообщений: 63
1

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

26.10.2018, 21:08. Показов 699. Ответов 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2018, 21:08
Ответы с готовыми решениями:

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

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

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

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

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

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

А так, если, например, там какой-нибудь stackoverflow, то простым try{}catch не обойтись.
0
0 / 0 / 0
Регистрация: 17.02.2017
Сообщений: 63
27.10.2018, 00:13  [ТС] 4
при отладке дебаггером, сразу после строки в моем коде
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\i nclude\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
16082 / 8684 / 2120
Регистрация: 30.01.2014
Сообщений: 14,969
27.10.2018, 12:07 5
lallollulz, Показывайте код этой функции целиком. У вас там ошибка, try-catch вам не поможет. Надо ошибку исправлять.
0
0 / 0 / 0
Регистрация: 17.02.2017
Сообщений: 63
28.10.2018, 15:18  [ТС] 6
DrOffset, да в том-то и проблема, что эта функция, из-за которой программа крашится, спрятана во внешней либе и доступа к её коду у меня нет.
выяснил в каких случаях (значениях cn, msg) функция приводит к крашу, и прост не вызываю ее
0
15 / 12 / 3
Регистрация: 25.10.2018
Сообщений: 113
28.10.2018, 20:17 7
Программа в любом случае уже не выполнится, если брошено исключение. Поймав исключение, вы можете его сразу обработать или выбросить "наверх", но в любом случае оно должно быть обработано в каком-нибудь из блоков catch. Например в Java в блоке Catch можно вывести всю информацию об исключении и написать, почему программа "упала".
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 20:17
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru