Структура Join Error
pub struct JoinError { /* private fields */ }
rt.Не удалось выполнить задачу до конца.
Реализации
impl JoinError
pub fn is_cancelled(&self) -> bool
Возвращает true, если ошибка возникла из-за отмены задачи.
Дополнительные сведения об отмене см. в документации на уровне модуля.
pub fn is_panic(&self) -> bool
Возвращает true, если ошибка возникла из-за паники в задаче.
Примеры
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>
Потребляет ошибку соединения и возвращает объект, вызвавший панику в задаче.
Паника
into_panic() вызывает панику, если Error не представляет завершение базовой задачи из-за паники. Используйте is_panic, чтобы проверить причину ошибки, или try_into_panic для варианта, который не вызывает панику.
Примеры
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>
Потребляет ошибку соединения и возвращает объект, вызвавший панику в задаче, если задача завершилась из-за паники. В противном случае возвращается self.
Примеры
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);
}
}
pub fn id(&self) -> Id
Возвращает идентификатор задачи, позволяющий отличить завершившуюся с ошибкой задачу от других задач, запущенных в данный момент.
Реализации трейтов
impl Error for JoinError
fn source(&self) -> Option<&(dyn Error + 'static)>
fn description(&self) -> &str
используйте реализацию Display или to_string()
Автоматические реализации трейтов
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
Общие реализации
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> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Subscriber к этому типу и возвращает оболочку WithDispatch. Подробнее
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/task/struct.JoinError.html