|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
VS 2017 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Подскажите, почему не попадаю в catch ? спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:29 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Потому что при делении на ноль не выбрасывается std::exception. PS: Исключения обычно ловят константной ссылкой, а не значением. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:34 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Потому что при делении на ноль не выбрасывается std::exception. PS: Исключения обычно ловят константной ссылкой, а не значением. надеялся что with SEH поможет но не помогает ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:43 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Для виндовса читай про SEH ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:43 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
подскажите как победить Код: plaintext 1. 2. 3.
HandleStructuredException is undefined ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:45 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoviewкак победить 1. Встать на него курсором. 2. Нажать F1. 3. Прочитать в открывшейся справке в каком заголовке он объявлен. 4. Подключить этот заголовок. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:48 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov listtoviewкак победить 1. Встать на него курсором. 2. Нажать F1. 3. Прочитать в открывшейся справке в каком заголовке он объявлен. 4. Подключить этот заголовок. так норм EXCEPTION_EXECUTE_HANDLER ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:54 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoview подскажите как победить Код: plaintext 1. 2. 3.
HandleStructuredException is undefined Написать функцию HandleStructuredException() Хэлп читай https://docs.microsoft.com/ru-ru/cpp/cpp/try-except-statement?view=vs-2019 Если исключение возникает во время выполнения защищенного раздела или в любой подпрограмме, вызванном вызовом защищенного раздела, вычисляется __except выражение (называемое критерием фильтра ), а значение определяет, как обрабатываются исключения. Есть три возможных значения: EXCEPTION_CONTINUE_EXECUTION (-1) исключение отклонено. Выполнение продолжается в точке, в которой возникло исключение. EXCEPTION_CONTINUE_SEARCH (0) исключение не распознано. Программа переходит к поиску обработчика в стеке (сначала находятся выражения с оператором try-except, а затем обработчики со следующим наивысшим приоритетом). Распознано исключение EXCEPTION_EXECUTE_HANDLER (1). Передайте управление обработчику исключений, выполнив составной оператор __except , а затем продолжайте выполнение после блока __except . Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
И учти что SEH и исключения С++ не очень хорошо уживаются . ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 13:56 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Dima T И учти что SEH и исключения С++ не очень хорошо уживаются . У Рихтера где-то было. Как обработчик SEH бросал исключения C++, т.е. преобразовывал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:01 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Dima T listtoview подскажите как победить Код: plaintext 1. 2. 3.
HandleStructuredException is undefined Написать функцию HandleStructuredException() Хэлп читай https://docs.microsoft.com/ru-ru/cpp/cpp/try-except-statement?view=vs-2019 Если исключение возникает во время выполнения защищенного раздела или в любой подпрограмме, вызванном вызовом защищенного раздела, вычисляется __except выражение (называемое критерием фильтра ), а значение определяет, как обрабатываются исключения. Есть три возможных значения: EXCEPTION_CONTINUE_EXECUTION (-1) исключение отклонено. Выполнение продолжается в точке, в которой возникло исключение. EXCEPTION_CONTINUE_SEARCH (0) исключение не распознано. Программа переходит к поиску обработчика в стеке (сначала находятся выражения с оператором try-except, а затем обработчики со следующим наивысшим приоритетом). Распознано исключение EXCEPTION_EXECUTE_HANDLER (1). Передайте управление обработчику исключений, выполнив составной оператор __except , а затем продолжайте выполнение после блока __except . Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
И учти что SEH и исключения С++ не очень хорошо уживаются . спасибо а как текст исключения получить? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:02 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Я ставил SetUnhandledException() и из него выкидывал исключения С++. Работало, но было стрёмно. Поэтому вместо этого я стал из него рушить программу с дампом. Всё равно получние такого исключения это признак бага, которого надо ловить, а не обрабатывать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:05 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoview а как текст исключения получить? Никак. Нет текста. listtoview А если внимательно код посмотреть? Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:18 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Dima T listtoview а как текст исключения получить? Никак. Нет текста. listtoview А если внимательно код посмотреть? Код: plaintext 1. 2. 3. 4. 5. 6.
понял еще вопрос, как ловить все исключения? не писать же так всегда Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:26 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
или принято всегда int выбрасывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:28 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoviewкак ловить все исключения? catch(...) Но обычно вменяемые программисты точно знают наперёд что может выкинуться из данной конкретной секции. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:45 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov listtoviewкак ловить все исключения? catch(...) Но обычно вменяемые программисты точно знают наперёд что может выкинуться из данной конкретной секции. а тип исключения? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:52 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
есть километр кода что и где упадет непонятно вот в c# все наследуются от Exception можно смело его ловить ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:54 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoview есть километр кода что и где упадет непонятно вот в c# все наследуются от Exception можно смело его ловить В шарпе тоже вероятно умные прогеры не ловят смело его одного)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 14:57 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp listtoview есть километр кода что и где упадет непонятно вот в c# все наследуются от Exception можно смело его ловить В шарпе тоже вероятно умные прогеры не ловят смело его одного)) конечно или его одного и проверяют тип но факт в том что поймать можно ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:01 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoview есть километр кода что и где упадет непонятно вот в c# все наследуются от Exception можно смело его ловить Увы, это недостаток С++. Точнее сказать последствия излишней свободы. И это касается не только исключений, а вообще очень многого. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:02 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
подскажите, почему строку не ловит Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:03 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Кстати, я вот не помню. Ловит ли SEH деление на ноль? Я думаю нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:03 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoview есть километр кода что и где упадет непонятно вот в c# все наследуются от Exception можно смело его ловить Наследуйся от std::exception. Этот класс создан для исключений, стандартная библиотека его использует. А свой код сам смотри, только тебе видно что там нагорожено. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:04 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoview, Потому что тут тип char *, а не std::string: Код: plaintext 1.
Но если быть точным тут тип char[4]. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:05 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoview есть километр кода что и где упадет непонятно вот в c# все наследуются от Exception можно смело его ловить Может пример приведешь? Я везде вижу несколько секций catch. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:06 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Я как то с помощью signal(...) ловил. Но это наверное не ТруЪ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:06 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
ну ладно, предусмотрел такие типы исключений, в большинстве случаев думаю хватит Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:10 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoviewесть километр кода что и где упадет непонятно Значит надо его вдумчиво читать пока не станет понятно. Это каждодневная работа программиста, привыкай. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:22 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Где-то я читал что очень много научных открытий в физике происходят на пределах. Тоесть там где величины либо нельзя измерять (слишком малые и слишком большие) и где есть парадоксы типа деления 0 на 0 или умножения 0 на бесконечность. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:33 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
maytonГде-то я читал что очень много научных открытий в физике происходят на пределах. Чушь. Там происходят не открытия, а генерируются гипотезы, не поддающиеся опровержению. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:35 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
mayton Где-то я читал что очень много научных открытий в физике происходят на пределах. Тоесть там где величины либо нельзя измерять (слишком малые и слишком большие) и где есть парадоксы типа деления 0 на 0 или умножения 0 на бесконечность. NaN ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 16:07 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Можно и так. Но математик в таких случаях ковыряет формулы пределов чтобы понять что за дробью 0/0 обычно сокрыта вполне себе конкретная цифра. Обычно есть методы там... Правило Лопиталя e.t.c. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 16:16 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
mayton, Вот прогеры не математики. Взяли и обозначили предел и границу разумности как NaN))) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 16:21 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
ИМХО куда-то вас не туда понесло. Тут же речь не о мат.либах, а о стандартном double, точность представления которого всем известна. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 16:23 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Это я о подходах. Если софт выбросил NaN то это повод почесать репу каким образом этот Nan вообще появился? И это кстати не синоним null. Это все таки признак. Статус результата операции. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 16:24 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
mayton, Да. Я предпочитаю писать код где неожиданностей нет. А у автора легси 1000 строк. Он по другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 16:31 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Щас скажу очередную рекламу для PVS-Studio. Но легаси тоже надо гнать через статик анализаторы. Кстати реально много подводных тараканов в шкафах всплывает. И утечки памяти. И выходы за границы массивов и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 16:33 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
listtoview еще вопрос, как ловить все исключения? не писать же так всегда Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
всё что можно надо ловить на этапе compile через static assert ( CG: P.5 , а также 6, 7, etc) остальное ловится в runtime через: - assert; - constructors; // вот тут легче всего catch ошибку за минимум кода - exceptions; затея типа в main() сделать: Код: plaintext 1.
наверное не сможет проследить полный путь? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 17:50 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
полудух listtoview еще вопрос, как ловить все исключения? не писать же так всегда Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
всё что можно надо ловить на этапе compile через static assert ( CG: P.5 , а также 6, 7, etc) остальное ловится в runtime через: - assert; - constructors; // вот тут легче всего catch ошибку за минимум кода - exceptions; затея типа в main() сделать: Код: plaintext 1.
наверное не сможет проследить полный путь? а тип ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 18:03 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
mayton Но математик в таких случаях ковыряет формулы пределов чтобы понять что за дробью 0/0 обычно сокрыта вполне себе конкретная цифра. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 19:44 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
опытным путем выяснил что крипто апи и ф-и со строками выбрасывают std::exception в большинстве случаев ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 14:54 |
|
Почему не попадаю в catch?
|
|||
---|---|---|---|
#18+
Как жеж тяжело вам программировать-та. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 18:45 |
|
|
start [/forum/topic.php?all=1&fid=57&tid=2017498]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 418ms |
0 / 0 |