Тип 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,
который является базовым трейтом для всех ошибок -
оператор
?,
который позволяет пробрасывать ошибки вверх по стеку вызовов