Здравствуйте, DarkEld3r, Вы писали:
FR>>Технически паники по умолчанию практически аналогичны исключениям С++, так же происходит раскрутка стека. Но вот перехватить их можно только для потока целиком.
DE>Что значит второе предложение?
Означает склероз, про catch_unwind знал, но на практике не использовал.
Ну и в документации прямо не рекомендуется его использовать как замену try/catch, хотя конечно все-равно будут это делать.
FR>>И кроме того есть режим компиляции panic = abort и при его использовании любая паника в любом потоке прибивает процесс, так что полагаться на паники для обработки ошибок нельзя.
DE>Уточню: это проблема только если мы пишем библиотеку. И даже так мне попадались библиотеки у которых в документации было написано, что требуется panic=unwind.
Практически это нарушает универсальность такой библиотеки.
DE>Ещё есть вот такой костыль, чтобы явно это требовать, правда только для найтли: https://stackoverflow.com/a/69273385/7752098
Да полезная вещь.
DE>Справедливости ради, в подавляющем большинстве случаев никто обработку ошибок на паниках не делает.
Ну так или иначе все-таки делают, в конечном счете так и до исключений может дойти