pub unsafe extern "rust-intrinsic" fn catch_unwind(
try_fn: fn(_: *mut u8),
data: *mut u8,
catch_fn: fn(_: *mut u8, _: *mut u8),
) -> i32
core_intrinsics
)Expand description
Rust’s “try catch” construct for unwinding. Invokes the function pointer try_fn
with the
data pointer data
, and calls catch_fn
if unwinding occurs while try_fn
runs.
catch_fn
must not unwind.
The third argument is a function called if an unwind occurs (both Rust panic
and foreign
unwinds). This function takes the data pointer and a pointer to the target- and
runtime-specific exception object that was caught.
Note that in the case of a foreign unwinding operation, the exception object data may not be safely usable from Rust, and should not be directly exposed via the standard library. To prevent unsafe access, the library implementation may either abort the process or present an opaque error type to the user.
For more information, see the compiler’s source, as well as the documentation for the stable
version of this intrinsic, std::panic::catch_unwind
.