Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / C++ |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 вперед Ctrl→ все |
Dimitry Sibiryakov Member Откуда: Сообщений: 52888 |
Ссылку на доку Qt - вижу. Ссылку на то почему в C++ не нужно finally - вижу. Не вижу ссылки на то "как пишут с try в других ЯП". Posted via ActualForum NNTP Server 1.5 |
||
3 фев 21, 14:33 [22273887] Ответить | Цитировать Сообщить модератору |
petrav Member Откуда: Сообщений: 2850 |
Скорее Qt не работает с исключениями по историческим причинам. Когда они начинали разрабатывать Qt исключений в языке не было. Так и пошло... Или по идеологическим причинам, например, считают, что исключения делают разработку сложной, а программы ненадёжными. |
||||
3 фев 21, 14:46 [22273910] Ответить | Цитировать Сообщить модератору |
Dimitry Sibiryakov Member Откуда: Сообщений: 52888 |
Или просто не смогли решить главную (и единственную) проблему исключений (не зависящую от ЯП) - совпадение системы исключений, RTTI и RTL на всём call stack от места, где оно выкидывается, до места, где оно ловится. Posted via ActualForum NNTP Server 1.5 |
||
3 фев 21, 14:51 [22273920] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Dimitry Sibiryakov, 21896099 try и финализация работают совместно и Удобно. |
3 фев 21, 15:08 [22273956] Ответить | Цитировать Сообщить модератору |
petrav Member Откуда: Сообщений: 2850 |
Вопрос совместимости. Если Qt собрано на VS 2017, а приложение на VS 2019, то будут ли проблемы? Я уверен (почти) что нет. Проблем особых я не вижу. Точнее проблема только одна: Qt перестаёт развиваться и мы просто не можем его пересобрать под новый компилятор. |
||||||
3 фев 21, 15:08 [22273957] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
petrav, Либы не нужно собирать в операционке. Ставить бинарниками. |
3 фев 21, 15:10 [22273960] Ответить | Цитировать Сообщить модератору |
Dimitry Sibiryakov Member Откуда: Сообщений: 52888 |
Ровно до момента, когда финализируемых объектов становится больше одного. RAII всё же удобнее, как и прочие умные указатели.
В тобой процитированном точно названы три условия. Ты не в состоянии проследить их выполнение? Тогда считай, что оно работать не будет, ибо в противном случае ты получишь зависимость поведения своей программы от погоды на Марсе. Posted via ActualForum NNTP Server 1.5 |
||||
3 фев 21, 15:25 [22273992] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 50968 |
Тут по логике надо проверить что open успешен. Вроде он тоже bool возвращает. Fail-fast. Сообщение было отредактировано: 3 фев 21, 15:25 |
||||
3 фев 21, 15:32 [22274009] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Dimitry Sibiryakov, >Ровно до момента, когда финализируемых объектов становится больше одного. RAII всё же удобнее, как и прочие умные указатели. ==возможно. Только умные указатели для технической сборки мусора это одно (проще). А для логики программного кода.... Ветвления.... Другое. Я предпочитаю руками это творить (с) )))) |
3 фев 21, 15:45 [22274033] Ответить | Цитировать Сообщить модератору |
Dimitry Sibiryakov Member Откуда: Сообщений: 52888 |
Значит твой путь - возвращение текста ошибок через параметр руками. Вот и ответ на вопрос топика. Posted via ActualForum NNTP Server 1.5 |
||
3 фев 21, 15:53 [22274049] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Неа. Мы видели "жизнь других". Попробую класс Qt и класс std. Отпишусь. |
||||||
3 фев 21, 17:07 [22274145] Ответить | Цитировать Сообщить модератору |
bk0010 Member Откуда: Сообщений: 5053 |
|
||||
3 фев 21, 22:08 [22274376] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Подскажите как работать с исключениями в студии. Нужен в отладке вывод номера строки кода где оно происходит или остановка ide на этой строке. Если исключение обернуто try то ide не останавливается. Если смотреть output то там нет номера строки. Может как добавить в e.what() но не понял как сделать. Студия 2015 может что с этим сделать? |
7 апр 21, 15:11 [22305452] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Хочется к в дельфи или вебсервере. В дельфи открывается редактор на строке с райзе. В веб серверах есть лог с подробнейшей инфой. |
7 апр 21, 15:22 [22305460] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Вот что выяснил. Если исключение я генерю сам, то появляется окно ![]() и редактор показывает строку с исключением. Если исключение в string.replace( index - 1 То окно уже не студии а C++ runtime library Исключение внутри dll и программа завершается. Отладка не работает. Почему? |
7 апр 21, 16:39 [22305528] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Отчасти решено)) Надо вкл галку Options - Enable Just My Code )) Тогда студия не уходит в недра своего кода глубоко. |
7 апр 21, 16:58 [22305546] Ответить | Цитировать Сообщить модератору |
MasterZiv Member Откуда: Питер Сообщений: 34684 |
чё за бред то? |
||||
7 апр 21, 23:15 [22305730] Ответить | Цитировать Сообщить модератору |
petrav Member Откуда: Сообщений: 2850 |
Это PetroNotC Sharp. ![]() |
||||||||
7 апр 21, 23:21 [22305734] Ответить | Цитировать Сообщить модератору |
MasterZiv Member Откуда: Питер Сообщений: 34684 |
В самом Qt нет исключений, причём ясно, по какой причине: библиотека возникла, когда исключений в С++ ещё не было. И в дальнейшем отказ от исключений в самом Qt тоже решили сохранить -- так фреймворк может использоваться в любых приложениях, с включёнными исключениями и с выключенными. Но использовать исключения в приложениях на Qt никто никогда не запрещал, используйте на здоровье! |
||||
7 апр 21, 23:23 [22305736] Ответить | Цитировать Сообщить модератору |
MasterZiv Member Откуда: Питер Сообщений: 34684 |
Так ловить надо исключения, если их используешь... |
||||
7 апр 21, 23:26 [22305740] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
std:string.begin() выход за диапазон } catch(три точки) А когда поймал надо вывод номера строки кода. Ну или стек по желанию. Сообщение было отредактировано: 8 апр 21, 07:46 |
||||||||
8 апр 21, 07:45 [22305777] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Их не запрещают. На них просто забили))) Поддержка в одном классе на задворках. Весь топик об этом говорили. Нельзя сделать и так и эдак да еще с удобствами“ |
||||||||
8 апр 21, 07:59 [22305779] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Я не спец. Возможно оператор noexcept повлиял в моем случае. Чего только не придумают))) https://coderoad.ru/33210169/Как-использовать-noexcept-в-C-или-как-это-работает |
8 апр 21, 09:09 [22305796] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Смешно. |
||
8 апр 21, 09:14 [22305799] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7558 |
Подскажите галочку в студии. Я запускаю F5 во время написания кода. Консольное. Если есть ошибка, то все равно запускается "прошлая" версия. Приходится сначала F6 и потом F5. Надоедает. Как тут автоматом? Как в дельфи)) |
8 апр 21, 15:20 [22306017] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 вперед Ctrl→ все |
Все форумы / C++ | ![]() |