Exceptions¶
Myokit tries to raise errors in a sensible manner. The following classes are used:
Base classes¶
- class myokit.MyokitError(message)¶
Base class for all exceptions specific to Myokit.
Note that myokit classes and functions may raise any type of exception, for example a :class:
KeyError
or aValueError
. Only new classes of exception defined by Myokit will extend this base class.Extends:
Exception
- class myokit.IntegrityError(message, token=None)¶
Raised if an “integrity” issue is found or created in a model or its components and variables, for example missing parents or children, or invalid references.
Integrity errors are usually raised by the
validate
method, but can also arise from certain manipulations, e.g. deleting or moving a variable or component. Integrity errors can also be raised if they are detected during some other operation.The error message is stored in the property
message
.Integrity errors detected during parsing may set a token (pointing to the position in the parsed text) retrievable with
token()
.Extends:
myokit.MyokitError
- token()¶
Returns a parser token associated with this error, or
None
if no such token was given.
Inheriting classes¶
- class myokit.CompilationError(message)¶
Raised if an auto-compiling class fails to compile. Catching one of these is usually a good excuses to email the developers ;-)
Extends:
myokit.MyokitError
- class myokit.CyclicalDependencyError(cycle)¶
Raised when an variables depend on each other in a cyclical manner.
The first argument
cycle
must be a sequence containing theVariable
objects in the cycle.Extends:
myokit.IntegrityError
- class myokit.DataBlockReadError(message)¶
Raised when an error is encountered while reading a
myokit.DataBlock1d
ormyokit.DataBlock2d
.Extends:
myokit.MyokitError
.
- class myokit.DataLogReadError(message)¶
Raised when an error is encountered while reading a
myokit.DataLog
.Extends:
myokit.MyokitError
.
- class myokit.DuplicateName(message)¶
Raised when an attempt is made to add a component or variable with a name that is already in use within the relevant scope.
Extends:
myokit.MyokitError
.
- class myokit.DuplicateFunctionName(message)¶
Raised when an attempt is made to add a user function to a model when a function with the same name and number of arguments already exists.
Extends:
myokit.MyokitError
.
- class myokit.DuplicateFunctionArgument(message)¶
Raised when an attempt is made to define a user function with duplicate argument names.
Extends:
myokit.MyokitError
.
- class myokit.ExportError(message)¶
Raised when an export to another format fails.
Extends:
myokit.MyokitError
.
- class myokit.FindNanError(message)¶
Raised by some simulations when a search for the origins of a numerical error has failed.
Extends:
myokit.MyokitError
- class myokit.GenerationError(message)¶
Raised by simulation engines and other auto-compiled classes if code generation fails.
Extends:
myokit.MyokitError
- class myokit.IllegalAliasError(message)¶
Raised when an attempt is made to add an alias in an invalid manner.
Extends:
myokit.MyokitError
- class myokit.IllegalReferenceError(reference, owner)¶
Raised when a reference is found to a variable
reference
that isn’t accessible from the owning variableowner
’s scope.Extends:
myokit.IntegrityError
- class myokit.IllegalReferenceInInitialValueError(reference, owner)¶
Raised when an illegal reference is made in an initial value.
The only way this can occur is if the reference is to a nested variable.
- class myokit.ImportError(message)¶
Raised when an import from another format fails.
Extends:
myokit.MyokitError
.
- class myokit.IncompatibleModelError(model_name, message)¶
Raised if a model is not compatible with some requirement.
Extends:
myokit.MyokitError
.
- class myokit.IncompatibleUnitError(message, token=None)¶
Raised when a unit incompatibility is detected.
Extends:
myokit.MyokitError
.- token()¶
Returns a parser token associated with this error, or
None
if no such token was given.
- class myokit.InvalidBindingError(message, token=None)¶
Raised when an invalid binding is made.
Extends:
myokit.IntegrityError
- class myokit.InvalidDataLogError(message)¶
Raised during validation of a
myokit.DataLog
if a violation is found.Extends:
myokit.MyokitError
.
- class myokit.InvalidFunction(message)¶
Raised when a function is declared with invalid arguments or an invalid expression.
Extends:
myokit.MyokitError
.
- class myokit.InvalidLabelError(message, token=None)¶
Raised when an invalid label is set.
Extends:
myokit.IntegrityError
- class myokit.InvalidMetaDataNameError(message)¶
Raised when an attempt is made to add a meta data property with a name that violates that the myokit naming rules for meta data properties.
Extends:
myokit.MyokitError
- class myokit.InvalidNameError(message)¶
Raised when an attempt is made to add a component or variable with a name that violates the myokit naming rules.
Extends:
myokit.MyokitError
- class myokit.MissingRhsError(var)¶
Raised when a variable was declared without a defining right-hand side equation.
The first argument
var
should be the invalid variable.Extends:
myokit.IntegrityError
- class myokit.MissingTimeVariableError¶
Raised when no variable was bound to time.
Extends:
myokit.IntegrityError
- class myokit.NumericalError(message)¶
Raised when a numerical error occurs during the evaluation of a myokit
Expression
.Extends:
myokit.MyokitError
- class myokit.ParseError(name, line, char, desc, cause=None)¶
Raised if an error is encountered during a parsing operation.
A ParseError has five attributes:
name
A short name describing the error
line
The line the error occurred on (integer, first line is one)
char
The character the error ocurred on (integer, first char is zero)
desc
A more detailed description of the error.
cause
Another exception that triggered this exception (or
None
).
Extends:
myokit.MyokitError
- class myokit.ProtocolEventError(message)¶
Raised when a
ProtocolEvent
is created with invalid parameters.Extends:
myokit.MyokitError
- class myokit.ProtocolParseError(name, line, char, desc, cause=None)¶
Raised when protocol parsing fails.
Extends:
ParseError
- class myokit.SectionNotFoundError(message)¶
Raised if a section should be present in a file but is not.
Extends:
myokit.MyokitError
- class myokit.SimulationError(message)¶
Raised when a numerical error occurred during a simulation. Contains a detailed error message.
Extends:
myokit.MyokitError
- class myokit.SimulationCancelledError(message='Operation cancelled by user.')¶
Raised when a user terminates a simulation.
Extends:
myokit.MyokitError
- class myokit.SimultaneousProtocolEventError(message)¶
Raised if two events in a protocol happen at the same time. Raised when creating a protocol or when running one.
Extends:
myokit.MyokitError
- class myokit.TypeError(message, token=None)¶
Raised by the expression system if expressions of one type are required but others are found.
For example, when a Derivative is created with an argument that is not a Name, when a condition is given as input to a numerical operator (e.g.
log(1 == 2)
), or when a conditional operator is applied to a number (e.g.and(1, 2)
).Extends:
myokit.IntegrityError
- class myokit.UnresolvedReferenceError(reference, extra_message=None)¶
Raised when a reference to a variable cannot be resolved.
Extends:
myokit.IntegrityError
- class myokit.UnusedVariableError(var)¶
Raised when an unused variable is found.
The unused variable must be passed in as the first argument
var
.Extends:
myokit.IntegrityError
- class myokit.VariableMappingError(message)¶
Raised when a method needs to map variables from one model onto another, but no valid mapping can be made.
Extends:
myokit.MyokitError
.