Class InvalidBufferOffsetException

All Implemented Interfaces:
Serializable

public final class InvalidBufferOffsetException extends InteropException
An exception thrown if a buffer access if out of bounds. Interop exceptions are supposed to be caught and converted into a guest language error by the caller.
Since:
21.1
See Also:
  • Method Details

    • getByteOffset

      public long getByteOffset()
      Returns the start byte offset of the invalid access from the start of the buffer.
      Since:
      21.1
    • getLength

      public long getLength()
      Returns the length of the accessed memory region in bytes starting from the start byte offset.
      Since:
      21.1
    • getMessage

      public String getMessage()
      Overrides:
      getMessage in class Throwable
      Since:
      21.1
    • create

      public static InvalidBufferOffsetException create(long byteOffset, long length)
      Creates an InvalidBufferOffsetException to indicate that a buffer access is invalid.

      This method is designed to be used in compiled code paths.

      Parameters:
      byteOffset - the start byteOffset of the invalid access
      length - the length of the accessed memory region in bytes starting from byteOffset
      Since:
      21.1
    • create

      public static InvalidBufferOffsetException create(long byteOffset, long length, Throwable cause)
      Creates an InvalidBufferOffsetException to indicate that a buffer access is invalid.

      In addition a cause may be provided. The cause should only be set if the guest language code caused this problem. An example for this is a language specific proxy mechanism that invokes guest language code to describe an object. If the guest language code fails to execute and this interop exception is a valid interpretation of the error, then the error should be provided as cause. The cause can then be used by the source language as new exception cause if the InteropException is translated to a source language error. If the InteropException is discarded, then the cause will most likely get discarded by the source language as well. Note that the cause must be of type AbstractTruffleException otherwise an IllegalArgumentException is thrown.

      This method is designed to be used in compiled code paths.

      Parameters:
      byteOffset - the start byteOffset of the invalid access
      length - the length of the accessed memory region in bytes starting from byteOffset.
      cause - the guest language exception that caused the error.
      Since:
      21.1