Enum jni::JvmError

source ·
#[non_exhaustive]
pub enum JvmError {
    NullOptString(String),
    OptStringTooLong {
        opt_string: String,
    },
    OptStringNotRepresentable {
        opt_string: String,
    },
    OptStringTranscodeFailure {
        opt_string: String,
        error: Error,
    },
}
Expand description

Errors that can occur when invoking a JavaVM with the Invocation API.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

NullOptString(String)

InitArgsBuilder::option or InitArgsBuilder::try_option was used, but the supplied string contains a U+0000 code point (except at the end).

This error is not raised if the string has a single U+0000 code point at the end.

InitArgsBuilder::option_encoded never raises this error.

§

OptStringTooLong

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§opt_string: String

The option string.

InitArgsBuilder::option or InitArgsBuilder::try_option was used, but the option string is too long.

Currently, this error only occurs on Windows, where string length is limited to 1MB to avoid overflow in WideCharToMultiByte (see discussion). String length is not currently limited (other than by available memory) on other platforms.

InitArgsBuilder::option_encoded never raises this error, regardless of platform.

§

OptStringNotRepresentable

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§opt_string: String

The option string.

InitArgsBuilder::option or InitArgsBuilder::try_option was used, but the option string is not representable in the platform default character encoding.

InitArgsBuilder::option_encoded never raises this error.

§

OptStringTranscodeFailure

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§opt_string: String

The option string.

§error: Error

The error reported by the platform’s character encoding conversion routine.

InitArgsBuilder::option or InitArgsBuilder::try_option was used, but the platform reported an error converting it to its default character encoding.

InitArgsBuilder::option_encoded never raises this error.

Implementations§

source§

impl JvmError

source

pub fn opt_string(&self) -> Option<&str>

Returns the JVM option that caused the error, if it was caused by one.

Trait Implementations§

source§

impl Debug for JvmError

source§

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

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

impl Display for JvmError

source§

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

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

impl Error for JvmError

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

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, 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> 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.