Exception Record types in eglx.lang

Several Exception Record types are provided in eglx.lang.

EGL package name

eglx.lang

Example use
Record type details
/**
 * A DynamicAccessException is thrown when dynamic access fails to find the specified field.
 */
record DynamicAccessException type Exception
	/**
	 * The name of the nonexistant field.
	 */
   key string;
end

/**
 * InvalidArgumentExceptions are thrown to indicate that an argument to a function
 * or constructor is invalid for some reason.
 */
record InvalidArgumentException type Exception
end

/**
 * InvalidIndexExceptions are thrown when a subscript or substring index is
 * out of bounds.
 */
record InvalidIndexException type Exception
   /**
	  * The invalid index.
    */
   index int;
end

/**
 * A NullValueException is thrown because of an attempt to get the value of a 
 * null reference. 
 */
record NullValueException type Exception
end

/**
 * When a value can't be converted to a particular type, a TypeCastException is thrown.
 */
record TypeCastException type Exception
   /**
    * The name of the type to which conversion was attempted.
	    */
   castToName string;
	
   /**
    * Names the type of the value.
    */
   actualTypeName string;
end

/**
 * InvalidPatternExceptions are thrown when a malformed pattern is used while
 * formatting, parsing, or pattern matching with a string.
 */
record InvalidPatternException type Exception
   /**
    * The invalid pattern.
    */
   pattern string;
end

   /**
    * When a call of a program or delegate fails, 
      an InvocationException is thrown.
    */
   record InvocationException type Exception
   /**
    * The name of the called program or delegated function.
    */
   name string;

   /**
     * The return code of the called program.
       Zero if there was no return code.
	    */
   returnValue int;
end

/**
 * This indicates a numeric overflow: a number is too large to be stored in the
 * place where it was used.
 */
record NumericOverflowException type Exception
end
Comments
Compatibility

Table 1. Compatibility
Target Issue
Java No issues.
JavaScript No issues.