Функция 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!,
который немедленно завершает программу с сообщением об ошибке