Struct JoinError
pub struct JoinError { /* private fields */ }
rt only.Task failed to execute to completion.
Implementations
impl JoinError
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.
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());
}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());
}
}
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
impl Error for JoinError
fn source(&self) -> Option<&(dyn Error + 'static)>
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations
impl !RefUnwindSafe for JoinError
impl !UnwindSafe for JoinError
impl Freeze for JoinError
impl Send for JoinError
impl Sync for JoinError
impl Unpin for JoinError
impl UnsafeUnpin for JoinError
Blanket Implementations
impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> ToString for T
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/task/struct.JoinError.html