РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
620 of 1245 menu

Функция new класса io::Error

Функция new класса io::Error создает новую ошибку ввода-вывода. Первым параметром функция принимает тип ошибки ErrorKind, который определяет категорию ошибки. Вторым параметром принимается описание ошибки - любой тип, реализующий трейт Into<Box<dyn Error + Send + Sync>>, обычно это строка. Функция возвращает значение типа io::Error.

Синтаксис

io::Error::new(kind, error)

Пример

Давайте создадим ошибку ввода-вывода с типом NotFound и выведем ее на экран:

use std::io; use std::io::ErrorKind; fn main() { let err = io::Error::new(ErrorKind::NotFound, "file not found"); println!("{}", err); }

Результат выполнения кода:

file not found

Пример

Давайте создадим ошибку и проверим ее тип с помощью метода kind:

use std::io; use std::io::ErrorKind; fn main() { let err = io::Error::new(ErrorKind::PermissionDenied, "access denied"); let kind = err.kind(); println!("{:?}", kind); }

Результат выполнения кода:

PermissionDenied

Пример

Давайте создадим ошибку и вернем ее из функции как результат типа Result:

use std::io; use std::io::ErrorKind; fn read_data() -> Result<String, io::Error> { let err = io::Error::new(ErrorKind::Other, "custom error"); Err(err) } fn main() { let res = read_data(); println!("{:?}", res); }

Результат выполнения кода:

Err(Custom { kind: Other, error: "custom error" })

Смотрите также

  • класс io::Error,
    который представляет ошибку ввода-вывода
  • метод last_os_error,
    который возвращает последнюю ошибку операционной системы
  • оператор ?,
    который распространяет ошибки вверх по стеку вызовов
  • макрос panic!,
    который немедленно завершает программу с сообщением об ошибке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить