RunSubsystemErrorProcedure (System property): Difference between revisions

From m204wiki
Jump to navigation Jump to search
No edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Template:System:RunSubsystemErrorProcedure subtitle}}
{{Template:System:RunSubsystemErrorProcedure subtitle}}
 
This property allows a [[FACTDEB parameter|FACTDEB procedure]] to determine if the subsystem error procedure is about to be run and possibly also prevent that procedure from being run.
This page is [[under construction]].
==Syntax==
==Syntax==
{{Template:System:RunSubsystemErrorProcedure syntax}}
{{Template:System:RunSubsystemErrorProcedure syntax}}
Line 7: Line 6:
<table class="syntaxTable">
<table class="syntaxTable">
<tr><th>%boolean</th><td><var>Boolean</var> value that indicates whether running the subsystem error procedure or whether running the [[FACTDEB parameter|FACTDEB procedure]] before running the subsystem error procedure.</td></tr>
<tr><th>%boolean</th><td><var>Boolean</var> value that indicates whether running the subsystem error procedure or whether running the [[FACTDEB parameter|FACTDEB procedure]] before running the subsystem error procedure.</td></tr>
<tr><th nowrap="true"><var>%(System)</var></th>
 
<tr><th><var class="nobr">%(System)</var></th>
<td>The class name in parentheses denotes a shared method. <var>RunSubsystemErrorProcedure</var> can also be invoked via a <var>System</var> object variable, which may be <var>Null</var>.</td></tr>
<td>The class name in parentheses denotes a shared method. <var>RunSubsystemErrorProcedure</var> can also be invoked via a <var>System</var> object variable, which may be <var>Null</var>.</td></tr>
</table>
</table>
Line 13: Line 13:
==Usage notes==
==Usage notes==
<ul>
<ul>
<li>While a settable property, this property can never be set to <var>False</var>. This is because the only way the property can become False is when an error in a subsystem procedure would cause the subsystem error procedure to be drive.</li>
<li>While a settable property, this property can never be set to <var>False</var>. This is because the only way the property can become False is when an error in a subsystem procedure would cause the subsystem error procedure to be drive.</li>
<li>This method is most useful in a [[FACTDEB parameter|FACTDEB procedure]]. It can be used to determine if the subsystem error procedure is about to be driven and to prevent that from happening (by setting the property to False).</li>
<li>This method is most useful in a [[FACTDEB parameter|FACTDEB procedure]]. It can be used to determine if the subsystem error procedure is about to be driven and to prevent that from happening (by setting the property to False).</li>
 
<li>The reason for this method is because APSY does not set the subsystem communications global to the error procedure's name before invoking it. So, when a FACTDEB procedure is invoked, that procedure would have no deterministic way of knowing that an error has occurred and that the error procedure is about to be invoked. In fact, in general, a FACTDEB procedure should always check the <var class="nobr">%(system):runSubsystemErrorProcedure</var> property before checking the value of the communications global (next procedure global).</li>
<li>The reason for this method is because APSY does not set the subsystem communications global to the error procedure's name before invoking it. So, when a FACTDEB procedure is invoked, that procedure would have no deterministic way of knowing that an error has occurred and that the error procedure is about to be invoked. In fact, in general, a FACTDEB procedure should always check the <var>%(system):runSubsystemErrorProcedure</var> property before checking the value of the communications global (next procedure global).</li>
 
</ul>
</ul>
==Examples==
==Examples==
The following code, presumably in a FACTDEB procedure, checks the <var class="nobr">%(system):runSubsystemErrorProcedure</var> porperty and, if set, simply stops, allowing the error procedure to be run:
<p class="code">if %(system):runSubsystemErrorProcedure then
  stop
end if
</p>
==See also==
==See also==
{{Template:System:RunSubsystemErrorProcedure footer}}
{{Template:System:RunSubsystemErrorProcedure footer}}

Latest revision as of 19:40, 3 September 2015

Is subsystem error procedure to be run (System class)

[Introduced in Sirius Mods 8.1]

This property allows a FACTDEB procedure to determine if the subsystem error procedure is about to be run and possibly also prevent that procedure from being run.

Syntax

%currentBoolean = %(System):RunSubsystemErrorProcedure %(System):RunSubsystemErrorProcedure = newBoolean

Syntax terms

%booleanBoolean value that indicates whether running the subsystem error procedure or whether running the FACTDEB procedure before running the subsystem error procedure.
%(System) The class name in parentheses denotes a shared method. RunSubsystemErrorProcedure can also be invoked via a System object variable, which may be Null.

Usage notes

  • While a settable property, this property can never be set to False. This is because the only way the property can become False is when an error in a subsystem procedure would cause the subsystem error procedure to be drive.
  • This method is most useful in a FACTDEB procedure. It can be used to determine if the subsystem error procedure is about to be driven and to prevent that from happening (by setting the property to False).
  • The reason for this method is because APSY does not set the subsystem communications global to the error procedure's name before invoking it. So, when a FACTDEB procedure is invoked, that procedure would have no deterministic way of knowing that an error has occurred and that the error procedure is about to be invoked. In fact, in general, a FACTDEB procedure should always check the %(system):runSubsystemErrorProcedure property before checking the value of the communications global (next procedure global).

Examples

The following code, presumably in a FACTDEB procedure, checks the %(system):runSubsystemErrorProcedure porperty and, if set, simply stops, allowing the error procedure to be run:

if %(system):runSubsystemErrorProcedure then stop end if

See also