Libraries.Language.Errors.ConcurrencyError Documentation

The ConcurrencyError class is an error or exception that is thrown when code attempts to access resources that the current thread is not allowed to use.

Example Code

use Libraries.Game.Game
use Libraries.Game.Graphics.Drawable
use Libraries.Language.Errors.ConcurrencyError

class Main is Game
   action Main
      StartGame()
   end

    action CreateGame
        check
            // Adding an item to the game on the wrong thread will cause an error.
            // This can't typically happen in CreateGame, but more complex programs
            // might otherwise add or manipulate objects in a different thread.
            Drawable box
            box:LoadFilledRectangle(100, 100)
            Add(box)
        detect e is ConcurrencyError
            output "Error detected: " + e:GetErrorMessage()
        end
    end
end

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

Summary

Actions Summary Table

ActionsDescription
Compare(Libraries.Language.Object object)This action compares two object hash codes and returns an integer.
Equals(Libraries.Language.Object object)This action determines if two objects are equal based on their hash code values.
GetErrorMessage()This action gets the error message of an object.
GetHashCode()This action gets the hash code for an object.
GetStackTrace()This action gets the stack trace of an object.
GetStackTraceMessage()This action puts the error stack trace into a text value and returns it.
OutputStackTrace()This action outputs the errors stack trace to the sodbeans output window.
SetErrorMessage(text message)This action sets the error message for the error.
SetStackTrace(Libraries.Containers.Array<Libraries.System.StackTraceItem> trace)This action sets the stack trace of an error.

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.

Example Code

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

Parameters

Return

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

Equals(Libraries.Language.Object object)

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

Example Code

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

Parameters

Return

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

GetErrorMessage()

This action gets the error message of an object.

Example Code

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

Return

text: The errors message.

GetHashCode()

This action gets the hash code for an object.

Example Code

Object o
        integer hash = o:GetHashCode()

Return

integer: The integer hash code of the object.

GetStackTrace()

This action gets the stack trace of an object.

Example Code

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

Return

Libraries.Containers.Array: The errors stack trace.

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 Code

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

SetErrorMessage(text message)

This action sets the error message for the error.

Example Code

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

Parameters

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

This action sets the stack trace of an error.

Example Code

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

Parameters