Re[11]: Почему в расте отсутствует выброс исключений?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 03.12.22 11:36
Оценка:
Здравствуйте, T4r4sB, Вы писали:

M>>А в расте оператор ?, как я понял, проверяет на ошибку и делает return из текущей функции? Ну может и удобно, но как я понимаю, у всей иерархии тип результата одинаковый? Это не особо часто таки бывает. Или как оно работает?


TB>Ты имеешь в виду наверное не "тип результата", а "тип ошибки"? Да, если он разный, то проблемка. Ну либо вручную делать


Ну, я не до конца таки там понял, я думал, что есть какой-то стандартный тип ошибки, который этот оператор умеет проверять, и к нему в паре идёт возвращаемое значение. И вот оно может быть разного типа на разных уровнях иерархии


TB>
TB>auto Result = foo().map_err(|e| foo_error_to_bar_error(e))?
TB>

TB>Либо на каком-то уровне иерархии возвращать Box<dyn Err>, ну и типа сразу наиболее общий тип ошибки возвращать.

Ну хз, как-то не удобно
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.