The function ExceptionToString returns an exception that has been formatted as a string error message.

Please also review Try....Except for more detailed information.

Declaration: Function ExceptionToString(ExceptionType, ExceptionParam): string;

The following example shows how the plain text error message can be prefixed by an additional user-friendly explanation.

procedure OnMapEvent(var Value:Variant);
var
Int1, Int2, Int3 : integer;
begin
//Try to divide an integer by zero - to raise an exception
try
Int1 := 10;
Int2 := 0;
Int3 := Int1 / Int2;
//These lines will execute if no error
LogInfo('This is the 1st statement to execute if there is no error.');
LogInfo('This is the next statement to execute if there is no error.');
except
LogInfo('Error occurred.');
//LogError will force the log to fail regardless
LogError('Exception occurred: '+ExceptionToString(ExceptionType, ExceptionParam));
 
end;
end;

To trap the exception and not cause the Action to fail and produce a PINK log, the LogError function can be replaced with either LogWarning, or a simple LogInfo, as illustrated below. The Action will continue and the Log will stay GREEN.

procedure OnMapEvent(var Value:Variant);
var
Int1, Int2, Int3 : integer;
begin
//Try to divide an integer by zero - to raise an exception
try
Int1 := 10;
Int2 := 0;
Int3 := Int1 / Int2;
//These lines will execute if no error
LogInfo('This is the 1st statement to execute if there is no error.');
LogInfo('This is the next statement to execute if there is no error.');
except
//LogError will force the log to fail regardless, so use LogInfo (or LogWarning)
LogInfo('Exception occurred: '+ExceptionToString(ExceptionType, ExceptionParam));
end;
end;

Please also refer to LogError and LogWarning for additional information on their use.