The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Rust включён в число основных языков для разработки платформы Android, opennews (??), 07-Апр-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


330. "Rust включён в число основных языков для разработки платформ..."  +/
Сообщение от Аноним (324), 09-Апр-21, 16:06 
Естественно с такими требованиями писать программы сложнее, потому что не получится просто отмахнуться от возможных ошибок в будущем. Самый простой способ забить на ошибку требует явно вызвать метод .unwrap(), который при ошибке просто крашит поток, но эти unwrap()-ы по коду видно невооруженным глазом.
И вот как раз за счёт того, что обработка ошибок обязательна, а возможные ошибки видны в сигнатуре функции, программу на Rust проще написать надёжной.
Ответить | Правка | Наверх | Cообщить модератору

334. "Rust включён в число основных языков для разработки платформ..."  +/
Сообщение от Аноним (334), 09-Апр-21, 16:53 
Можно писать вместо unwrap просто ? и обрабатывать один раз ошибку из всей функции
Получаем нормальную проверку без дурных экспшенов и забиваний на абстрактное светлое будущее
Ответить | Правка | Наверх | Cообщить модератору

335. "Rust включён в число основных языков для разработки платформ..."  +/
Сообщение от Ordu (ok), 09-Апр-21, 17:41 
Не, unwrap лучше. С unwrap ты получаешь бектрейс, когда что-то пошло не так, и этот бектрейс явно указывает на место, где что-то пошло не так, даже думать не надо, просто берёшь и исправляешь. А ?, во-первых, требует чего-нибудь в стиле AnyHow, чтобы все ошибки автоматом прокидывались бы, и, во-вторых, ты в конечном итоге получаешь бектрейс от того места, где тебе было не лень ошибку обработать, и откуда здесь взялась ошибка ты потом можешь гадать очень долго.

В целом, мой опыт подсказывает, что unwrap (или ещё лучше except) самый офигенный способ. А ? и всё остальное, это тогда когда ты уже в целом логику программы выверял до уровня, когда можно рассуждать о логике обработки ошибок, вот тогда можно unwrap'ы заменять на ? или map_err(...)?

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру