pub async fn run_catch<R, T>(
task: impl IntoFuture<IntoFuture = T>,
) -> Result<R, Box<dyn Any + Send>>
Expand description
Like run
but catches panics.
This task works the same and has the same utility as run
, except if returns panic messages
as an error instead of propagating the panic.
§Unwind Safety
This function disables the unwind safety validation, meaning that in case of a panic shared
data can end-up in an invalid, but still memory safe, state. If you are worried about that only use
poisoning mutexes or atomics to mutate shared data or discard all shared data used in the task
if this function returns an error.