pub 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§
Source§impl RuntimeError
impl RuntimeError
Sourcepub fn new<I: Into<String>>(message: I) -> Self
pub fn new<I: Into<String>>(message: I) -> Self
Creates a new generic RuntimeError with the given message.
§Example
let trap = wasmer::RuntimeError::new("unexpected error");
assert_eq!("unexpected error", trap.message());Sourcepub fn new_from_source(
source: Trap,
wasm_trace: Vec<FrameInfo>,
trap_code: Option<TrapCode>,
) -> Self
pub fn new_from_source( source: Trap, wasm_trace: Vec<FrameInfo>, trap_code: Option<TrapCode>, ) -> Self
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());Sourcepub fn user(error: Box<dyn Error + Send + Sync>) -> Self
pub fn user(error: Box<dyn Error + Send + Sync>) -> Self
Creates a custom user Error.
This error object can be passed through Wasm frames and later retrieved
using the downcast method.
Sourcepub fn exception(ctx: &impl AsStoreRef, exception: Exception) -> Self
pub fn exception(ctx: &impl AsStoreRef, exception: Exception) -> Self
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.
Sourcepub fn trace(&self) -> &[FrameInfo]
pub fn trace(&self) -> &[FrameInfo]
Returns a list of function frames in WebAssembly code that led to this trap happening.
Sourcepub fn downcast<T: Error + 'static>(self) -> Result<T, Self>
pub fn downcast<T: Error + 'static>(self) -> Result<T, Self>
Attempts to downcast the RuntimeError to a concrete type.
Sourcepub fn downcast_ref<T: Error + 'static>(&self) -> Option<&T>
pub fn downcast_ref<T: Error + 'static>(&self) -> Option<&T>
Attempts to downcast the RuntimeError to a concrete type.
Sourcepub fn is_exception(&self) -> bool
pub fn is_exception(&self) -> bool
Returns true if the RuntimeError is an uncaught exception.
Sourcepub fn to_exception(&self) -> Option<Exception>
pub fn to_exception(&self) -> Option<Exception>
If the RuntimeError is an uncaught exception, returns it.
Sourcepub 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.
Sourcepub fn write_trace(trace: &[FrameInfo], f: &mut Formatter<'_>) -> Result
pub fn write_trace(trace: &[FrameInfo], f: &mut Formatter<'_>) -> Result
Write the WASM trace to the given formatter, if we have one.
Trait Implementations§
Source§impl Clone for RuntimeError
impl Clone for RuntimeError
Source§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 moreSource§impl Debug for RuntimeError
impl Debug for RuntimeError
Source§impl Display for RuntimeError
impl Display for RuntimeError
Source§impl Error for RuntimeError
impl Error for RuntimeError
Source§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
Source§impl From<MemoryAccessError> for RuntimeError
impl From<MemoryAccessError> for RuntimeError
Source§fn from(err: MemoryAccessError) -> Self
fn from(err: MemoryAccessError) -> Self
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>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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