HandleError

Overview

HandleError offers a method Process which is useful to handle application errors on a general level.

It has the following goals:

You can make Process execute your own code by specifying these two names:

Examples

This example sets error trapping for an application so that HandleError.Process uses defaults (empty right argument)

      ⎕TRAP←(405 'E' '406 #.HandleError.Process ⍬')

This example calls HandleError.CreateParms in order to create a command namespace and then modifies some of them. Note the usage of ⎕SHADOW in order to make sure that the ⎕TRAP statement can always "see" the right argument: it's kind of a global but at the time local in the sense that it will disappear when the application finishes.

      #.⎕SHADOW'HandleErrorParms'
      #.HandleErrorParms←#.HandleError.CreateParms
 #.HandleErrorParms.∆List
 addToMsg                    
 createHTML                1 
 customFns                   
 errorFolder         Errors\ 
 logFunction                 
 off                       1 
 returnCode                1 
 saveCrash                 1 
 saveErrorWS               1 
 signal                    0 
 trapInternalErrors        1 
 windowsEventSource          

      ⎕TRAP←(405 'E' '406 #.HandleError.Process #.HandleErrorParms')

By editing or ⎕CRing the following function you can see what

     ⎕CR '#.HandleErrorParms.∆Reference'  

That would result in something similar to this:

createHTML
Boolean that defaults to 1. A 0 suppresses the creation of the HTML file
customFns
Fully qualified name of a monadic function to be executed by "Process". Useful to send an email, for example.
errorFolder
Folder that keeps the component file (crash), the HTML page and the error WS
logFunction
Name of the logging function to be used
off
By default this function executes ⎕OFF with ""returnCode"" when in Runtime. A 0 suppressed this.
returnCode
The return code passed on to ⎕OFF
saveCrash

Boolean that defaults to 1. A 0 suppresses the creation of #.Crash & a component file saving this NS

saveErrorWS
Boolean that defaults to 1. A 0 suppresses the creation of crash
sendEmailTo
List of comma-separated email addresses to be notified regarding the crash. Ignored when empty.
signal
When "off" is 0 and "signal" is not 0 then "signal" is signaled by "Process". Can be used for a restart attempt.
trapInternalErrors
By default all internal errors are trapped: "Process" should never crash in an app.
windowsEventSource
Name of the Windows Event Log to write to. Ignored when empty.
addToMsg
Will be added to log file entries as well as Windows Event Log messages. Mainly for test cases

Project Page

For bug reports, future enhancements and a full version history see HandleError/ProjectPage

Version Information

Original author:

KaiJaeger

Responsible:

KaiJaeger

Email:

kai@aplteam.com

HandleError needs version 13.0 of Dyalog APL.


CategoryAplTree