This is an old revision of the document!
Various functions can be used incorrectly. When this happens, you can put a print statement into the function. But will that print statement log to the server console in multiplayer? Will you not forget to use PrintBold instead of Print if the error happens with a non-player activator? What if you want to be able to turn error messages off? And finally, how should ACSUtils notify you about errors?
To solve all these problems, ACSUtils provides a standardized error handling mechanism. Errors are triggered through a set of functions that pass them to your project's custom error handler.
#include "acsutils.acs" function void ACSUtilsErrorHandler(int type, int message) { Log(s:"error: ", s:message); // Log to server console. printbold(s:"error: ", s:message); // Print to all players. }
The error handler can do whatever it wants with the messages: it can show them only to the administrator, it can suppress messages if a cvar is set, or it can try to show them to everyone.
The error handler also receives the type of the error. There are the following error types:
ACSERROR_PROGRAM
โ a programming error in scripts, this should be triggered when a function is used incorrectly.ACSERROR_MAPPING
โ a mapping error, this should be triggered when, for example, a needed actor is not present on the map.ACSERROR_LIMIT
โ a static limit has been reached, and should be increased. For example, HudPushState()
will trigger this error when you try to save too many states.To report errors, use one of the following functions, corresponding to each of the error types:
void ProgramError(str message)
Triggers an ACSERROR_PROGRAM
with the given message.
void MappingError(str message)
Triggers an ACSERROR_MAPPING
with the given message.
void LimitError(str message)
Triggers an ACSERROR_LIMIT
with the given message.