Struct RuntimeError
pub(crate) struct RuntimeError {
pub(crate) inner: Arc<RuntimeErrorInner>,
}Expand description
A struct representing an aborted instruction execution, with a message indicating the cause.
Fields§
§inner: Arc<RuntimeErrorInner>Implementations§
§impl RuntimeError
impl RuntimeError
pub fn new<I>(message: I) -> RuntimeError
pub fn new<I>(message: I) -> RuntimeError
Creates a new generic RuntimeError with the given message.
§Example
let trap = wasmer::RuntimeError::new("unexpected error");
assert_eq!("unexpected error", trap.message());pub fn new_from_source(
source: BackendTrap,
wasm_trace: Vec<FrameInfo>,
trap_code: Option<TrapCode>,
) -> RuntimeError
pub fn new_from_source( source: BackendTrap, wasm_trace: Vec<FrameInfo>, trap_code: Option<TrapCode>, ) -> RuntimeError
Creates RuntimeError from an error and a WasmTrace
§Example
let wasm_trace = vec![wasmer_types::FrameInfo::new(
"my_module".to_string(),
0,
Some("my_function".to_string()),
0.into(),
2.into()
)];
let trap = wasmer::RuntimeError::new_from_source(my_error, wasm_trace, None);
assert_eq!("unexpected error", trap.message());pub fn user(error: Box<dyn Error + Sync + Send>) -> RuntimeError
pub fn user(error: Box<dyn Error + Sync + Send>) -> RuntimeError
Creates a custom user Error.
This error object can be passed through Wasm frames and later retrieved
using the downcast method.
pub fn exception(ctx: &impl AsStoreRef, exception: Exception) -> RuntimeError
pub fn exception(ctx: &impl AsStoreRef, exception: Exception) -> RuntimeError
Creates a RuntimeError containing an exception.
If this error is returned from an imported function, the exception will be thrown in the WebAssembly code instead of the usual trapping.
pub fn trace(&self) -> &[FrameInfo]
pub fn trace(&self) -> &[FrameInfo]
Returns a list of function frames in WebAssembly code that led to this trap happening.
pub fn downcast<T>(self) -> Result<T, RuntimeError>where
T: Error + 'static,
pub fn downcast<T>(self) -> Result<T, RuntimeError>where
T: Error + 'static,
Attempts to downcast the RuntimeError to a concrete type.
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: Error + 'static,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: Error + 'static,
Attempts to downcast the RuntimeError to a concrete type.
pub fn is<T>(&self) -> boolwhere
T: Error + 'static,
pub fn is<T>(&self) -> boolwhere
T: Error + 'static,
Returns true if the RuntimeError is the same as T
pub fn is_exception(&self) -> bool
pub fn is_exception(&self) -> bool
Returns true if the RuntimeError is an uncaught exception.
pub fn to_exception(&self) -> Option<Exception>
pub fn to_exception(&self) -> Option<Exception>
If the RuntimeError is an uncaught exception, returns it.
pub fn display<'a>(
&'a self,
store: &'a mut impl AsStoreMut,
) -> RuntimeErrorDisplay<'a>
pub fn display<'a>( &'a self, store: &'a mut impl AsStoreMut, ) -> RuntimeErrorDisplay<'a>
Returns a displayable version of the RuntimeError that also shows exception payloads.
pub fn write_trace(
trace: &[FrameInfo],
f: &mut Formatter<'_>,
) -> Result<(), Error>
pub fn write_trace( trace: &[FrameInfo], f: &mut Formatter<'_>, ) -> Result<(), Error>
Write the WASM trace to the given formatter, if we have one.
Trait Implementations§
§impl Clone for RuntimeError
impl Clone for RuntimeError
§fn clone(&self) -> RuntimeError
fn clone(&self) -> RuntimeError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for RuntimeError
impl Debug for RuntimeError
§impl Display for RuntimeError
impl Display for RuntimeError
§impl Error for RuntimeError
impl Error for RuntimeError
§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
§impl From<MemoryAccessError> for RuntimeError
impl From<MemoryAccessError> for RuntimeError
§fn from(err: MemoryAccessError) -> RuntimeError
fn from(err: MemoryAccessError) -> RuntimeError
Source§impl From<RuntimeError> for WasiRuntimeError
impl From<RuntimeError> for WasiRuntimeError
Source§fn from(source: RuntimeError) -> Self
fn from(source: RuntimeError) -> Self
§impl From<Trap> for RuntimeError
impl From<Trap> for RuntimeError
§fn from(trap: Trap) -> RuntimeError
fn from(trap: Trap) -> RuntimeError
Auto Trait Implementations§
impl Freeze for RuntimeError
impl !RefUnwindSafe for RuntimeError
impl Send for RuntimeError
impl Sync for RuntimeError
impl Unpin for RuntimeError
impl !UnwindSafe for RuntimeError
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Pointee for T
impl<T> Pointee for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.