ACSUtils Wiki

An ACS library for ZDoom-based ports

User Tools

Site Tools


functions:error

This is an old revision of the document!


Error notification

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.

Error reporting functions

To report errors, use one of the following functions, corresponding to each of the error types:

ProgramError

void ProgramError(str message)

Triggers an ACSERROR_PROGRAM with the given message.

MappingError

void MappingError(str message)

Triggers an ACSERROR_MAPPING with the given message.

LimitError

void LimitError(str message)

Triggers an ACSERROR_LIMIT with the given message.

functions/error.1470824698.txt.gz ยท Last modified: 2016/08/10 13:24 by korshun