1.0.0[−][src]Struct std::io::Error
The error type for I/O operations of the Read, Write, Seek, and
associated traits.
Errors mostly originate from the underlying OS, but custom instances of
Error can be created with crafted error messages and a particular value of
ErrorKind.
Methods
impl Error[src]
impl Errorpub fn new<E>(kind: ErrorKind, error: E) -> Error where
E: Into<Box<Error + Send + Sync>>, [src]
pub fn new<E>(kind: ErrorKind, error: E) -> Error where
E: Into<Box<Error + Send + Sync>>, Creates a new I/O error from a known kind of error as well as an arbitrary error payload.
This function is used to generically create I/O errors which do not
originate from the OS itself. The error argument is an arbitrary
payload which will be contained in this Error.
Examples
use std::io::{Error, ErrorKind}; // errors can be created from strings let custom_error = Error::new(ErrorKind::Other, "oh no!"); // errors can also be created from other errors let custom_error2 = Error::new(ErrorKind::Interrupted, custom_error);Run
pub fn last_os_error() -> Error[src]
pub fn last_os_error() -> ErrorReturns an error representing the last OS error which occurred.
This function reads the value of errno for the target platform (e.g.
GetLastError on Windows) and will return a corresponding instance of
Error for the error code.
Examples
use std::io::Error; println!("last OS error: {:?}", Error::last_os_error());Run
pub fn from_raw_os_error(code: i32) -> Error[src]
pub fn from_raw_os_error(code: i32) -> ErrorCreates a new instance of an Error from a particular OS error code.
Examples
On Linux:
use std::io; let error = io::Error::from_raw_os_error(22); assert_eq!(error.kind(), io::ErrorKind::InvalidInput);Run
On Windows:
use std::io; let error = io::Error::from_raw_os_error(10022); assert_eq!(error.kind(), io::ErrorKind::InvalidInput);Run
pub fn raw_os_error(&self) -> Option<i32>[src]
pub fn raw_os_error(&self) -> Option<i32>Returns the OS error that this error represents (if any).
If this Error was constructed via last_os_error or
from_raw_os_error, then this function will return Some, otherwise
it will return None.
Examples
use std::io::{Error, ErrorKind}; fn print_os_error(err: &Error) { if let Some(raw_os_err) = err.raw_os_error() { println!("raw OS error: {:?}", raw_os_err); } else { println!("Not an OS error"); } } fn main() { // Will print "raw OS error: ...". print_os_error(&Error::last_os_error()); // Will print "Not an OS error". print_os_error(&Error::new(ErrorKind::Other, "oh no!")); }Run
pub fn get_ref(&self) -> Option<&(Error + Send + Sync + 'static)>1.3.0[src]
pub fn get_ref(&self) -> Option<&(Error + Send + Sync + 'static)>Returns a reference to the inner error wrapped by this error (if any).
If this Error was constructed via new then this function will
return Some, otherwise it will return None.
Examples
use std::io::{Error, ErrorKind}; fn print_error(err: &Error) { if let Some(inner_err) = err.get_ref() { println!("Inner error: {:?}", inner_err); } else { println!("No inner error"); } } fn main() { // Will print "No inner error". print_error(&Error::last_os_error()); // Will print "Inner error: ...". print_error(&Error::new(ErrorKind::Other, "oh no!")); }Run
pub fn get_mut(&mut self) -> Option<&mut (Error + Send + Sync + 'static)>1.3.0[src]
pub fn get_mut(&mut self) -> Option<&mut (Error + Send + Sync + 'static)>Returns a mutable reference to the inner error wrapped by this error (if any).
If this Error was constructed via new then this function will
return Some, otherwise it will return None.
Examples
use std::io::{Error, ErrorKind}; use std::{error, fmt}; use std::fmt::Display; #[derive(Debug)] struct MyError { v: String, } impl MyError { fn new() -> MyError { MyError { v: "oh no!".to_string() } } fn change_message(&mut self, new_message: &str) { self.v = new_message.to_string(); } } impl error::Error for MyError { fn description(&self) -> &str { &self.v } } impl Display for MyError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "MyError: {}", &self.v) } } fn change_error(mut err: Error) -> Error { if let Some(inner_err) = err.get_mut() { inner_err.downcast_mut::<MyError>().unwrap().change_message("I've been changed!"); } err } fn print_error(err: &Error) { if let Some(inner_err) = err.get_ref() { println!("Inner error: {}", inner_err); } else { println!("No inner error"); } } fn main() { // Will print "No inner error". print_error(&change_error(Error::last_os_error())); // Will print "Inner error: ...". print_error(&change_error(Error::new(ErrorKind::Other, MyError::new()))); }Run
pub fn into_inner(self) -> Option<Box<Error + Send + Sync>>1.3.0[src]
pub fn into_inner(self) -> Option<Box<Error + Send + Sync>>Consumes the Error, returning its inner error (if any).
If this Error was constructed via new then this function will
return Some, otherwise it will return None.
Examples
use std::io::{Error, ErrorKind}; fn print_error(err: Error) { if let Some(inner_err) = err.into_inner() { println!("Inner error: {}", inner_err); } else { println!("No inner error"); } } fn main() { // Will print "No inner error". print_error(Error::last_os_error()); // Will print "Inner error: ...". print_error(Error::new(ErrorKind::Other, "oh no!")); }Run
pub fn kind(&self) -> ErrorKind[src]
pub fn kind(&self) -> ErrorKindReturns the corresponding ErrorKind for this error.
Examples
use std::io::{Error, ErrorKind}; fn print_error(err: Error) { println!("{:?}", err.kind()); } fn main() { // Will print "No inner error". print_error(Error::last_os_error()); // Will print "Inner error: ...". print_error(Error::new(ErrorKind::AddrInUse, "oh no!")); }Run
Trait Implementations
impl Error for Error[src]
impl Error for Errorfn description(&self) -> &str[src]
fn description(&self) -> &strThis method is soft-deprecated. Read more
fn cause(&self) -> Option<&Error>[src]
fn cause(&self) -> Option<&Error>: replaced by Error::source, which can support downcasting
The lower-level cause of this error, if any. Read more
fn source(&self) -> Option<&(Error + 'static)>1.30.0[src]
fn source(&self) -> Option<&(Error + 'static)>The lower-level source of this error, if any. Read more
impl Display for Error[src]
impl Display for Errorfn fmt(&self, fmt: &mut Formatter) -> Result[src]
fn fmt(&self, fmt: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl Debug for Error[src]
impl Debug for Errorfn fmt(&self, f: &mut Formatter) -> Result[src]
fn fmt(&self, f: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl From<NulError> for Error[src]
impl From<NulError> for Errorimpl<W> From<IntoInnerError<W>> for Error[src]
impl<W> From<IntoInnerError<W>> for Errorfn from(iie: IntoInnerError<W>) -> Error[src]
fn from(iie: IntoInnerError<W>) -> ErrorPerforms the conversion.
impl From<ErrorKind> for Error1.14.0[src]
impl From<ErrorKind> for ErrorIntended for use for errors not exposed to the user, where allocating onto the heap (for normal construction via Error::new) is too costly.
Auto Trait Implementations
Blanket Implementations
impl<T, U> TryFrom for T where
T: From<U>, [src]
impl<T, U> TryFrom for T where
T: From<U>, type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>Performs the conversion.
impl<T> From for T[src]
impl<T> From for Timpl<T, U> TryInto for T where
U: TryFrom<T>, [src]
impl<T, U> TryInto for T where
U: TryFrom<T>, type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>Performs the conversion.
impl<T, U> Into for T where
U: From<T>, [src]
impl<T, U> Into for T where
U: From<T>, impl<T> Borrow for T where
T: ?Sized, [src]
impl<T> Borrow for T where
T: ?Sized, ⓘImportant traits for &'a mut Ifn borrow(&self) -> &T[src]
fn borrow(&self) -> &TImmutably borrows from an owned value. Read more
impl<T> BorrowMut for T where
T: ?Sized, [src]
impl<T> BorrowMut for T where
T: ?Sized, ⓘImportant traits for &'a mut Ifn borrow_mut(&mut self) -> &mut T[src]
fn borrow_mut(&mut self) -> &mut TMutably borrows from an owned value. Read more
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Any for T where
T: 'static + ?Sized, fn get_type_id(&self) -> TypeId[src]
fn get_type_id(&self) -> TypeId🔬 This is a nightly-only experimental API. (get_type_id #27745)
this method will likely be replaced by an associated static
Gets the TypeId of self. Read more
impl<T> ToString for T where
T: Display + ?Sized, [src]
impl<T> ToString for T where
T: Display + ?Sized,