Program termination: Difference between revisions

Content added Content deleted
(GNU APL example)
Line 213: Line 213:
return 10 -- Number of seconds to the next call of this handler if the applet's still open.
return 10 -- Number of seconds to the next call of this handler if the applet's still open.
end idle</lang>
end idle</lang>


=={{header|APL}}==
APL is an interpreted language and does not allow conditionals inside REPL (immediate) expressions, so this must be run within a script.

<lang apl>
#!/usr/local/bin/apl --script --

⍝⍝ GNU APL script
⍝⍝ Usage: errout.apl <code>
⍝⍝
⍝⍝ $ echo $? ## to see exit code
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
args ← 2↓⎕ARG~'--script' '--' ⍝⍝ strip off script args we don't need

err ← ⍎⊃args[1]

∇main
→(0=err)/ok
error:
'Error! exiting.'
⍎')off 1' ⍝⍝ NOTE: exit code arg was added to )OFF in SVN r1499 Nov 2021
ok:
'No error, continuing...'
⍎')off'

main
</lang>
{{out}}
<pre>
~/GNUAPL$ workspaces/errout.apl 0
No error, continuing...

~/GNUAPL$ echo $?
0
~/GNUAPL$ workspaces/errout.apl 1
Error! exiting.

~/GNUAPL$ echo $?
1
</pre>



=={{header|ARM Assembly}}==
=={{header|ARM Assembly}}==