4D v16.3ON ERR CALL |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
ON ERR CALL
ON ERR CALL
The ON ERR CALL command installs the project method, whose name you pass in errorMethod, as the method for catching (trapping) errors. This project method is called the error-handling method or error-catching method. Once an error-handling project is installed, 4D calls the method each time an error occurs during the execution of a 4D language command. The scope of this command is the current process. You can have only one error-handling method per process at a time, but you can have different error-handling methods for several processes. Notes:
To stop the trapping of errors, call ON ERR CALL again and pass the empty string in errorMethod. You can identify errors by reading the Error system variable, which contains the code number of the error. Error codes are listed in the Error Codes theme. For example, you can see the section Syntax Errors (1 -> 81). The Error variable value is significant only within the error-handling method; if you need the error code within the method that provoked the error, copy the Error variable to your own process variable. You can also access the Error method, Error line and Error formula system variables which contain, respectively, the name of the method, the line number and the text of the formula where the error occurred (see Error, Error method, Error line). You can use the GET LAST ERROR STACK command to obtain the error sequence (i.e., the error "stack") at the origin of the interruption. The error-handling method should manage the error in an appropriate way or present an error message to the user. Errors can be generated during processing performed by:
The ABORT command can be used to terminate processing. If you don’t call ABORT in the error-handling method, 4D returns to the interrupted method and continues to execute the method. Use the ABORT command when an error cannot be recovered. If an error occurs in the error-handling method itself, 4D takes over error handling. Therefore, you should make sure that the error-handling method cannot generate an error. Also, you cannot use ON ERR CALL inside the error-handling method. The following project method tries to create a document whose name is received as parameter. If the document cannot be created, the project metod returns 0 (zero) or the error code: //Create doc project method The IO ERROR HANDLER project method is listed here: //IO ERROR HANDLER project method Note the use of the gError process variable to get the error code result within the current executing method. Once these methods are present in your database, you can write: // ... See example in the Arrays and Memory section. While implementing a complex set of operations, you may end up with various subroutines that require different error-handling methods. You can have only one error-handling method per process at a time, so you have two choices: You must initialize the array at the very beginning of the process execution: ` Do NOT forget to initialize the array at the beginning Here is the custom ON ERROR CALL method: ` ON ERROR CALL project method Then, you can call it this way: gError:=0 The following error-handling method ignores the user interruptions and displays the error text: //Show_errors_only project method
See also
ABORT
|
PROPERTIES
Product: 4D HISTORY
Created: < 4D v6 ARTICLE USAGE
4D Language Reference ( 4D v16) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||