pub struct JoinError { /* private fields */ }
rt
only.Expand description
Task failed to execute to completion.
Implementations§
Source§impl JoinError
impl JoinError
Sourcepub fn is_cancelled(&self) -> bool
pub fn is_cancelled(&self) -> bool
Returns true if the error was caused by the task being cancelled.
See the module level docs for more information on cancellation.
Sourcepub fn is_panic(&self) -> bool
pub fn is_panic(&self) -> bool
Returns true if the error was caused by the task panicking.
§Examples
use std::panic;
#[tokio::main]
async fn main() {
let err = tokio::spawn(async {
panic!("boom");
}).await.unwrap_err();
assert!(err.is_panic());
}
Sourcepub fn into_panic(self) -> Box<dyn Any + Send + 'static>
pub fn into_panic(self) -> Box<dyn Any + Send + 'static>
Consumes the join error, returning the object with which the task panicked.
§Panics
into_panic()
panics if the Error
does not represent the underlying
task terminating with a panic. Use is_panic
to check the error reason
or try_into_panic
for a variant that does not panic.
§Examples
use std::panic;
#[tokio::main]
async fn main() {
let err = tokio::spawn(async {
panic!("boom");
}).await.unwrap_err();
if err.is_panic() {
// Resume the panic on the main task
panic::resume_unwind(err.into_panic());
}
}
Sourcepub fn try_into_panic(self) -> Result<Box<dyn Any + Send + 'static>, JoinError>
pub fn try_into_panic(self) -> Result<Box<dyn Any + Send + 'static>, JoinError>
Consumes the join error, returning the object with which the task
panicked if the task terminated due to a panic. Otherwise, self
is
returned.
§Examples
use std::panic;
#[tokio::main]
async fn main() {
let err = tokio::spawn(async {
panic!("boom");
}).await.unwrap_err();
if let Ok(reason) = err.try_into_panic() {
// Resume the panic on the main task
panic::resume_unwind(reason);
}
}
Trait Implementations§
Source§impl Error for JoinError
impl Error for JoinError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl Freeze for JoinError
impl !RefUnwindSafe for JoinError
impl Send for JoinError
impl Sync for JoinError
impl Unpin for JoinError
impl !UnwindSafe for JoinError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes