Libraries.Language.Errors.InvalidLocationError Documentation

The InvalidLocationError class is an error or exception that is thrown when an invalid memory location is accessed. For example attempting to access the index 21 in an array that has a size of 10.

Example Code

use Libraries.Language.Errors.InvalidLocationError
use Libraries.Containers.Array

class Main
action Main
   Array myArray
   check
     integer i = 0
     repeat while i < 20
         myArray:Get(i)
         i = i + 1
     end
   detect e is InvalidLocationError
     output "Error detected: " + e:GetErrorMessage()
   end
end
end

Inherits from: Libraries.Language.Errors.Error, Libraries.Language.Object

Actions Documentation

Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.

Parameters

Return

integer: The Compare result, Smaller, Equal, or Larger.

Example

Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)

Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

Parameters

Return

boolean: True if the hash codes are equal and false if they are not equal.

Example

use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)

GetErrorMessage()

This action gets the error message of an object.

Return

text: The errors message.

Example

use Libraries.Language.Errors.Error
Error error
text message = error:GetErrorMessage()

GetHashCode()

This action gets the hash code for an object.

Return

integer: The integer hash code of the object.

Example

Object o
integer hash = o:GetHashCode()

GetStackTrace()

This action gets the stack trace of an object.

Return

Libraries.Containers.Array: The errors stack trace.

Example

use Libraries.Containers.Array
use Libraries.Language.Errors.Error
use Libraries.System.StackTraceItem
Array<StackTraceItem> callStack
Error error
callStack = error:GetStackTrace()

GetStackTraceMessage()

This action puts the error stack trace into a text value and returns it. class Main action Main check //intentionally throw an undefined error Object o = undefined o:Compare(o) detect e text message = e:GetStackTraceMessage() output message end end end

Return

text:

OutputStackTrace()

This action outputs the errors stack trace to the sodbeans output window.

Example

class Main
    action Main
        check
            //intentionally throw an undefined error
            Object o = undefined
            o:Compare(o)
        detect e
            e:OutputStackTrace()
        end
    end
end

RegenerateMessageWithIndex(integer index)

Parameters

  • integer index

RegenerateMessageWithIndexAndSize(integer index, integer size)

Parameters

  • integer index
  • integer size

SetErrorMessage(text message)

This action sets the error message for the error.

Parameters

  • text message: The error message.

Example

use Libraries.Language.Errors.Error
Error error
error:SetErrorMessage("An error has occurred.")

SetStackTrace(Libraries.Containers.Array<Libraries.System.StackTraceItem> trace)

This action sets the stack trace of an error.

Parameters

Example

use Libraries.Containers.Array
use Libraries.Language.Errors.Error
use Libraries.System.StackTraceItem
Array<StackTraceItem> callStack
Error error
error:SetStackTrace(callStack)