Re[3]: Почему в расте отсутствует выброс исключений?
От: flаt  
Дата: 30.11.22 09:04
Оценка:
Здравствуйте, johny5, Вы писали:

J>Кстате обнаружил для себя panic!, оказывается он не убивает приложение а только текущий поток (ну и приложение если поток был главным). Tokio как то хитро это использует и просто выплёвывает запаниковавшие короутины, продолжая работать дальше. Чем то похоже на эксепшионы.


Это они и есть.

J>На обработчик panic можно ставить свою процедуру через set_hook. Правда, насколько я понял, это глобальный обработчик и он не может остановить убивание провинившегося потока.

J>Просветите если чего недопонял, плиз.


https://doc.rust-lang.org/std/panic/fn.catch_unwind.html — вот официальный способ перехвата паники (если не компилировать с panic=abort). По сути, try/catch.


https://doc.rust-lang.org/std/panic/fn.set_hook.html — это не обработка, а просто колбэк при панике, чтобы вывести сообщение.
Отредактировано 30.11.2022 9:09 flаt . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.