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

Тип io::Error

Тип io::Error представляет собой структуру для описания ошибок, возникающих при выполнении операций ввода-вывода, таких как чтение или запись файлов, работа с сетью, стандартными потоками ввода и вывода. Он находится в модуле std::io и реализует трейт Error, а также типаж Display и Debug. Значения этого типа обычно возвращаются в виде результата io::Result<T>, который является псевдонимом для Result<T, io::Error>.

Синтаксис

std::io::Error

Пример

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

use std::fs::File; fn main() { let res = File::open("nonexistent.txt"); match res { Ok(_) => println!("File opened"), Err(e) => println!("Error: {}", e), } }

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

Error: No such file or directory (os error 2)

Пример

Давайте получим код ошибки операционной системы с помощью метода raw_os_error:

use std::fs::File; fn main() { let res = File::open("nonexistent.txt"); match res { Ok(_) => println!("File opened"), Err(e) => println!("{:?}", e.raw_os_error()), } }

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

Some(2)

Пример

Давайте создадим собственную ошибку ввода-вывода с помощью метода new:

use std::io; fn main() { let res = io::Error::new(io::ErrorKind::Other, "custom error"); println!("{}", res); }

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

custom error

Пример

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

use std::fs::File; fn main() { let res = File::open("nonexistent.txt"); match res { Ok(_) => println!("File opened"), Err(e) => println!("{:?}", e.kind()), } }

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

NotFound

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

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