The Ferite Developers Guide - Extending and Embedding The Ferite Engine | ||
---|---|---|
Prev | Chapter 4. Accessing Ferite Internals | Next |
There are times when things go wrong. It's a painful time, but it need not be. Ferite provides a means of raising exceptions to force a programmer to deal with errors but also a means of quietly setting the error information allowing the programmer to check for non-fatal things.
It is considered good form to return error values from a function call. This is the route you should take if you require the reporting of errors. For instance if you have a function that connects to a resource and returns an object to interact with that resource, it makes sense to return a null object [FE_RETURN_NULL_OBJECT] if that resource cant be obtained.
Sometimes this is not possible to return an error value. In these situations it is considered good form to use the function ferite_set_error [it's prototype is below]. This sets the err script object's values, but does not raise an exception. This allows the programmer to ignore things if needs be. It takes a number of parameters, the first is the script you are running in, the second is the error number and the last is the format of a string [same as printf] describing the error that has occured. It should be documented that this is the case such that the programmer knows what to look for.
void ferite_set_error( FeriteScript *script, int num, char *fmt, ... ); |
When all hope is lost, there are times when an exception needs to be rasied because some has gone completely wrong. This is done by calling ferite_error. You can pass it the error number and the message just like ferite_set_error.
void ferite_error( FeriteScript *script, int num, char *fmt, ... ); |
Sometimes it is nice to warn people about not so bad things, and as such there is a function ferite_warning which will place a warning on the script.
void ferite_warning( FeriteScript *script, char *errormsg, ... ); |