Engine exceptions
This page details the error codes and descriptions of the
DCR.Core.D.Err
exception thrown by the engine in various
exceptional circumstances.
This exception has two properties, Code
and Description
. The error is
uniquely identified by Code
; the Description
property is a human-readable
representation of the error.
Table
The table below lists the errors that may be returned by the Engine, describing for each error the context in which the error may occur; gives a more thorough description; and indicates whether the error is (likely) an internal error. If the 'Internal' column is not blank, please file a bug report if you encounter the error.
id | Text | Context | Description | Internal |
---|---|---|---|---|
1 | "Malformed path '%A'" | Path parsing | A path could not be parsed | |
2 | "Malformed step '%s' (got '%A')" | Path parsing | Improper nesting of [ and ] in a path |
|
3 | "Unmatched location '%s' in path" | Path evaluation | When trying to find the exact event referenced by a path, the engine encountered a location name, but could not find a corresponding event | Yes |
4 | "Can't find marking of non-event path '%A'" | Path evaluation | A path contained a name which could not be found in any marking | Yes |
7 | "Cannot find event at the end of eid '%A'" | Path evaluation | ||
10 | "Event %s is not executable" |
Event execution | The supplied event was not executable, and so cannot be executed | |
15 | "Cannot interpret %s as a number" |
XML deserialisation | The string given could not be parsed as a (decimal) number | |
16 | "Element %s is missing required attribute %s " |
XML deserialisation | The indicated element was expected to have the indicated attribute, but it did not | |
17 | "Cannot interpret %s as an integer" |
XML deserialisation | ||
18 | "Unknown type '%s'" | XML deserialisation | The XML representation of data for execution contained an unparsable type attribute |
|
19 | "Unbound variable '%s'" | Data-expression evaluation | Evaluation failed because the data expression contains an identifier that is neither the name of a variable nor a an event | |
27 | "Bad lexeme '%s'" | Parsing | A string contained a character not recognised by the lexer. Likely a data- or path-expression is malformed | |
28 | "%s, line %d, column %d: syntax error" | Data-expression parsing | The engine could not parse a suppplied data-expression, e.g., foo < (bar + 2 . |
|
29--31 | "Internal error" | Yes | ||
32 | "No marking for free name %s" | The process mentions an event %s , but contains no marking for that event |
Yes | |
33 | "Eid '%A' does not end in event" | The internal representation of path ended in somethin other than an event | Yes | |
37 | "Cannot compare values '%A' and '%A'" | Data-expression evaluation | Evaluation failed because it required a comparison of incompatible types (e.g., 'A' < 3 ) |
|
38 | "Cannot add values '%A' and '%A'" | Data-expression evaluation | Evaluation failed because it required an addition of incompatible types (e.g., 'A' + 3 ) |
|
57 | "Can't advance time %d ticks; deadline at %d" | Time | ||
59 | "Malformed subprocess:\n %s" | XML deserialisation | Yes | |
60 | "Invalid constant expression '%s'" | XML deserialisation | The string representing the value of a variable in the global store could not be parsed as such a value | |
61 | ||||
62 | "Undefined subprocess '%s'" | XML deserialistation | A spawn relation has as right-hand side an identifier which is not the name of any subprocess | |
64 | "Malformed subprocess identifier '%s'" | XML deserialisation | Yes |
Certain internal errors are not listed in this table.
Serialisation
The service interface to the engine (not documented here) traditionally serialises errors as follows.
<?xml version="1.0" encoding="utf-8"?>
<executionResult>
<accepted>0</accepted>
<error id="60">Invalid constant expression 'aaa'</error>
</executionResult>