Re[5]: Почему в расте отсутствует выброс исключений?
От: FR  
Дата: 30.11.22 09:42
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

FR>>Технически паники по умолчанию практически аналогичны исключениям С++, так же происходит раскрутка стека. Но вот перехватить их можно только для потока целиком.


DE>Что значит второе предложение?


Означает склероз, про catch_unwind знал, но на практике не использовал.
Ну и в документации прямо не рекомендуется его использовать как замену try/catch, хотя конечно все-равно будут это делать.

FR>>И кроме того есть режим компиляции panic = abort и при его использовании любая паника в любом потоке прибивает процесс, так что полагаться на паники для обработки ошибок нельзя.


DE>Уточню: это проблема только если мы пишем библиотеку. И даже так мне попадались библиотеки у которых в документации было написано, что требуется panic=unwind.


Практически это нарушает универсальность такой библиотеки.

DE>Ещё есть вот такой костыль, чтобы явно это требовать, правда только для найтли: https://stackoverflow.com/a/69273385/7752098


Да полезная вещь.

DE>Справедливости ради, в подавляющем большинстве случаев никто обработку ошибок на паниках не делает.


Ну так или иначе все-таки делают, в конечном счете так и до исключений может дойти
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.