Java exception handling
In order to catch Java exceptions within programs, use a
TRY/CATCH
block.
When a Java exception occurs, the runtime system sets the status
variable
to the error code -8306.
The Java exception details (that is the name of the exception) can be found with the ERR_GET(status) built-in function.
To get the Java exception type with ERR_GET()
, do not execute other instructions
before querying for the error message, otherwise the status
variable may be reset
to zero and the Java exception details would be lost.
To easily identify the type of the Java exceptions in your code, consider writing a library
function based on ERR_GET()
, that recognizes most common Java exceptions,
and converts them to integer codes:
IMPORT JAVA java.lang.StringBuffer
MAIN
DEFINE sb java.lang.StringBuffer
LET sb = StringBuffer.create("abcdef")
TRY
CALL sb.deleteCharAt(50) -- out of bounds!
CATCH
DISPLAY err_get(status)
EXIT PROGRAM 1
END TRY
END MAIN
As a general pattern, do not use TRY/CATCH
or WHENEVER ERROR
CONTINUE
exception handlers if no exception is supposed to occur. By default the program
will then stop and display the Java exception details.