4,494
edits
Miraheze>Adám Brudzewsky |
|||
(11 intermediate revisions by 5 users not shown) | |||
Line 68: | Line 68: | ||
=== Restarting the application === | === Restarting the application === | ||
For reasons explained in a minute we now have to define the “Restart the application” procedure. For this, for the first time we do not use the <source lang=apl inline>'E' statement but the <source lang=apl inline>'C'</source> statement. The ''C'' is short for ''Cut back''. This instructs APL to cut the status indicator back to the level where <source lang=apl inline>⎕TRAP</source> '''is localized''' – that is not necessarily where it was set – and execute the expression in the 3rd argument there. However, if <source lang=apl inline>⎕TRAP</source> is not localized at all, i.e. it is in the workspace, the status indicator is cut back completely and the expression is executed in the workspace. | For reasons explained in a minute we now have to define the “Restart the application” procedure. For this, for the first time we do not use the <source lang=apl inline>'E'</source> statement but the <source lang=apl inline>'C'</source> statement. The ''C'' is short for ''Cut back''. This instructs APL to cut the status indicator back to the level where <source lang=apl inline>⎕TRAP</source> '''is localized''' – that is not necessarily where it was set – and execute the expression in the 3rd argument there. However, if <source lang=apl inline>⎕TRAP</source> is not localized at all, i.e. it is in the workspace, the status indicator is cut back completely and the expression is executed in the workspace. | ||
<source lang=apl> | <source lang=apl> | ||
⎕TRAP,←⊂(#.Events.RestartAppl 'C' '→∆Restart') | ⎕TRAP,←⊂(#.Events.RestartAppl 'C' '→∆Restart') | ||
Line 191: | Line 191: | ||
== Code == | == Code == | ||
{{Collapse|The below workspace contains all the code needed to implement the ideas discussed above.|<source lang=apl> | |||
The below workspace contains all the code needed to implement the ideas discussed above. | |||
<source lang=apl> | |||
(⎕IO ⎕ML ⎕WX)←1 1 3 | (⎕IO ⎕ML ⎕WX)←1 1 3 | ||
Line 542: | Line 539: | ||
r←'Development'≡(⎕IO+3)⊃'.'⎕WG'APLVersion' | r←'Development'≡(⎕IO+3)⊃'.'⎕WG'APLVersion' | ||
∇ | ∇ | ||
∇ Off status | ∇ Off status | ||
Line 769: | Line 767: | ||
:EndNamespace | :EndNamespace | ||
</source> | </source> | ||
}} | |||
== See also == | |||
* [[Dfn#Error-guards|Dfn error-guards]] | |||
* [[Error trapping in Dyalog APL forms]] | |||
== External links == | |||
=== Lessons === | |||
* Error handling webinars: [https://dyalog.tv/Webinar/?v=tDK0AKXXRAk part 1], [https://dyalog.tv/Webinar/?v=PSrXyk5tN6o part 2], [https://dyalog.tv/Webinar/?v=jkD-iQfjo_Q part 3], [https://dyalog.tv/Webinar/?v=G7Ht8iKvDMo part 4], [https://dyalog.tv/Webinar/?v=WP6R7VRmHfc part 5] | |||
* [https://chat.stackexchange.com/rooms/52405/conversation/lesson-13-code-management-i-o-dates-unicode-files-errors#42339704 APL Cultivation] | |||
=== Documentation === | |||
* [https://help.dyalog.com/latest/#Language/System%20Functions/signal.htm Signal Event] | |||
* [https://help.dyalog.com/latest/#Language/Errors/APL%20Errors.htm Error messages] | |||
* [https://help.dyalog.com/latest/#Language/System%20Functions/trap.htm Trap Event] | |||
* [https://help.dyalog.com/latest/#Language/Control%20Structures/trap.htm Trap Statement] | |||
* [https://help.dyalog.com/latest/#Language/System%20Functions/dm.htm Diagnostic Message] | |||
* [https://help.dyalog.com/latest/#Language/System%20Functions/en.htm Event Number] | |||
[[Category:Tutorials]][[Category:Dyalog APL examples]] | |||
{{APL development}} |