pub enum UncatchableError {
    TraceError {
        trace_error: TraceHandlerError,
        instruction: String,
    },
    GenerationCompatificationError(GenerationCompatificationError),
    FoldStateNotFound(String),
    IterableShadowing(String),
    MultipleIterableValues(String),
    CallResultNotCorrespondToInstr(ValueRef),
    ShadowingIsNotAllowed(String),
    ScalarsStateCorrupted {
        scalar_name: String,
        depth: usize,
    },
    CidError(CidCalculationError),
    ValueForCidNotFound(&'static str, String),
    StreamDontHaveSuchGeneration {
        stream: Stream,
        generation: Generation,
    },
    MalformedCallServiceFailed(Error),
}
Expand description

Uncatchable errors arisen during AIR script execution. Uncatchable here means that these errors couldn’t be handled by a xor instruction and their error_code couldn’t be used in a match instruction. They are similar to JVM runtime errors and some of them could be caught only while execution of AIR script, others (FoldStateNotFound and MultipleVariablesFound) are checked additionally on the validation step, and presence here for convenience.

Variants§

§

TraceError

Fields

§trace_error: TraceHandlerError
§instruction: String

Errors bubbled from a trace handler.

§

GenerationCompatificationError(GenerationCompatificationError)

These errors are related to internal bug in the interpreter when result trace is corrupted.

§

FoldStateNotFound(String)

Fold state wasn’t found for such iterator name.

§

IterableShadowing(String)

Errors encountered while shadowing non-scalar values.

§

MultipleIterableValues(String)

Multiple fold states found for such iterator name.

§

CallResultNotCorrespondToInstr(ValueRef)

Errors occurred when result from data doesn’t match to a call instruction, f.e. a call could be applied to a stream, but result doesn’t contain generation in a source position.

§

ShadowingIsNotAllowed(String)

Variable shadowing is not allowed, usually it’s thrown when a AIR tries to assign value for a variable not in a fold block or in a global scope but not right after new.

§

ScalarsStateCorrupted

Fields

§scalar_name: String
§depth: usize

This error occurred when new tries to pop up a variable at the end, but scalar state doesn’t contain an appropriate variable. It should be considered as an internal error and shouldn’t be caught by a xor instruction.

§

CidError(CidCalculationError)

§

ValueForCidNotFound(&'static str, String)

We consider now that every CID should present in the data; and not having any CID is considered a non-catching error.

§

StreamDontHaveSuchGeneration

Fields

§stream: Stream
§generation: Generation

Errors occurred while insertion of a value inside stream that doesn’t have corresponding generation.

§

MalformedCallServiceFailed(Error)

Trait Implementations§

source§

impl Debug for UncatchableError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for UncatchableError

source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for UncatchableError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<CidCalculationError> for UncatchableError

source§

fn from(source: CidCalculationError) -> Self

Converts to this type from the input type.
source§

impl From<GenerationCompatificationError> for UncatchableError

source§

fn from(source: GenerationCompatificationError) -> Self

Converts to this type from the input type.
source§

impl From<UncatchableError> for ExecutionError

source§

fn from(source: UncatchableError) -> Self

Converts to this type from the input type.
source§

impl ToErrorCode for UncatchableError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<E> Provider for Ewhere E: Error + ?Sized,

source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to provide by using demand. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more