Axaptapedia is now maintained by AgileCadence For more information please click here.
Exception handling
From Axaptapedia
When execution a string of code, there is a risk that something may go wrong. Exception handling lets you handle system errors by your own code.
Contents
Try and Catch[edit]
If you are able to predict a block of code, where an exception will occur under certain circumstances, you can use the try command:
<xpp> try {
// Block of code that may fail
} catch (exception::error) {
// Do something about this error
} </xpp>
Retry[edit]
If you enter Retry in the catch block the try block is executes once more, but be carefull as this can result in a never-ending loop.
Catch enums[edit]
Enum (exception::) | Description |
---|---|
Info | |
Warning | |
Deadlock | |
Error | |
Internal | |
Break | |
DDEerror | |
Sequence | |
Numeric | |
CLRError | |
CodeAccessSecurity | |
UpdateConflict | |
UpdateConflictNotRecovered |
Example[edit]
<xpp> static void TryCatchTest(Args _args) {
Map m = new Map(types::Integer, types::String); str s; int i; ;
m.insert(0,"Zero"); m.insert(1, "First"); m.insert(2, "Second"); m.insert(4, "Fourth");
for (i=0;i<4;i++) { try { s = m.lookup(i); print s; } catch (exception::Error) { i++; // Try to solve the problem (This IS just an example!) retry; // retry the statement. } } pause;
} </xpp>