@@ -316,16 +316,18 @@ where
316316///
317317/// # Notes
318318///
319- /// Note that this function **might not catch all panics** in Rust. A panic in
320- /// Rust is not always implemented via unwinding, but can be implemented by
321- /// aborting the process as well. This function *only* catches unwinding panics,
322- /// not those that abort the process.
323- ///
324- /// Note that if a custom panic hook has been set, it will be invoked before
325- /// the panic is caught, before unwinding.
326- ///
327- /// Also note that unwinding into Rust code with a foreign exception (e.g.
328- /// an exception thrown from C++ code) is undefined behavior.
319+ /// This function **might not catch all panics** in Rust. A panic in Rust is not
320+ /// always implemented via unwinding, but can be implemented by aborting the
321+ /// process as well. This function *only* catches unwinding panics, not those
322+ /// that abort the process.
323+ ///
324+ /// If a custom panic hook has been set, it will be invoked before the panic is
325+ /// caught, before unwinding.
326+ ///
327+ /// Although unwinding into Rust code with a foreign exception (e.g. an
328+ /// exception thrown from C++ code) via an appropriate ABI (e.g. `"C-unwind"`)
329+ /// is permitted, catching such an exception using this function is undefined
330+ /// behavior.
329331///
330332/// Finally, be **careful in how you drop the result of this function**.
331333/// If it is `Err`, it contains the panic payload, and dropping that may in turn panic!
0 commit comments