WHENEVER statement
Use the WHENEVER statement to trap exceptions that occur during the execution of SQL statements. The WHENEVER statement is equivalent to placing an exception-checking routine after every SQL statement.
Syntax
(explicit id wnvr001)
wnvr001
WHENEVER
{
SQLERROR
| NOT FOUND
| []SQLWARNING
| []ERROR
}
{
CONTINUE
|
{
GOTO
| GO TO
}
{
:label
| []label
}
| CALLroutine
| STOP }
Element | Description | Restrictions | Syntax |
---|---|---|---|
label | Statement label to which program control transfers when an exception occurs | Must exist in the same source-code module. | Language-specific |
routine | Name of a user-defined routine (UDR) to be invoked when an exception occurs | No arguments; UDR must exist at compile time. | Identifier |
Usage
Important: Use
this statement only with Informix®
ESQL/C.
The
following table summarizes the types of exceptions that you can check
with the WHENEVER statement.
Type of exception | WHENEVER Keyword | For More Information |
---|---|---|
Errors | SQLERROR or ERROR | SQLERROR Keyword |
Warnings | SQLWARNING Keyword | |
Not Found or End of Data | NOT FOUND Keywords |
Programs that do not use the WHENEVER statement do not automatically abort when an exception occurs. Such programs must explicitly check for exceptions and take whatever corrective action their logic specifies. If you do not check for exceptions, the program simply continues running. If errors occur, however, the program might not perform its intended purpose.
The first keyword that follows
WHENEVER specifies some type of exceptional condition; the last part
of the statement specifies some action to take when the exception
is encountered (or no action, if CONTINUE is specified). The following
table summarizes possible actions that WHENEVER can specify.
Type of action | WHENEVER keyword | For more information |
---|---|---|
Continue program execution | CONTINUE Keyword | |
Stop program execution | STOP Keyword | |
Transfer control to a specified label | GOTO GO TO | GOTO Keyword |
Transfer control to a UDR | CALL Clause |
1 Informix® extension