База Hintsage

Программирование Rust

Язык Rust и безопасное системное программирование.

Темы раздела

Выберите подраздел

Практика

Вопросы: Программирование Rust

Представьте, что функция должна изолировать аварийное завершение замыкаемой операции. Какой результат выведет программа и за счёт какого механизма выполнение продолжается после panic!?

use std::panic::catch_unwind;

fn main() {
    let result = catch_unwind(|| {
        panic!("сбой");
    });

    println!("{}", result.is_err());
    println!("продолжение");
}
Программирование RustОбработка ошибокРазработчик библиотек и инфраструктурных сервисов на Rust

Разберите последствия вызова функции для разных входных данных: что произойдёт при передаче строки "http" и почему возвращаемый тип не защищает от аварийного завершения?

fn parse_port(text: &str) -> Result<u16, String> {
    let port = text.parse::<u16>().unwrap();
    Ok(port)
}

fn main() {
    println!("{:?}", parse_port("8080"));
    println!("{:?}", parse_port("http"));
}
Программирование RustОбработка ошибокРазработчик системного ПО на Rust

Показано 81100 из 348