diff options
Diffstat (limited to 'Docs/04-errors')
-rw-r--r-- | Docs/04-errors | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/Docs/04-errors b/Docs/04-errors deleted file mode 100644 index 786c46374..000000000 --- a/Docs/04-errors +++ /dev/null @@ -1,30 +0,0 @@ -Error handling -============== - -This section describes error handling in the code. - -The most common serious error is memory exhaustion. If malloc(), strdup(), etc. -fails, clean up and free any partially complete structures leaving data in a -consistent state, and return a value which indicates failure, eg. 0 for -functions which return a pointer (document the value in the function -documentation). The caller should then propagate the failure up in the same way. -At some point, the error should stop being passed up and be reported to the user -using - - warn_user("NoMemory", 0); - -The other common error is one returned by a RISC OS SWI. Always use "X" SWIs, -something like this: - - os_error *error; - error = xwimp_get_pointer_info(&pointer); - if (error) { - LOG(("xwimp_get_pointer_info: 0x%x: %s\n", - error->errnum, error->errmess)); - warn_user("WimpError", error->errmess); - return false; - } - -If an error occurs during initialisation, in most cases exit immediately using -die(), since this indicates that there is already insufficient memory, or a -resource file is corrupted, etc. |