Programmer's Reference

Handling errors

If an error occurs during a load, the loadFromFileHandle:atOffset: method answers nil. Another way to detect an error is to send the hasErrorOccurred message to the format object (the instance of the CgFileFormat subclass). This method answers true if an error occurred in the last operation, or false if no error occurred. To determine what the error was, the currentError and currentErrorString messages can be sent to the format object. The currentError method answers an integer error code. The currentErrorString method answers a String describing the error. The following table lists the error codes and corresponding error strings.

Table 26. CgFileFormat error codes and error strings

Error code Error string
1 No errors
2 Error opening file
3 Invalid file handle
4 Invalid offset
5 Invalid array of ByteArrays
6 Invalid array of integer offsets into ByteArrays
7 Seek error
8 Write error
9 Read error
10 Read-only object encountered (attempt to unload into ByteArray marked as read-only)
11 Memory allocation error
12 File format not supported
13 File is not of specified format
14 Compression type not supported
15 Unsupported aspect of the specified format encountered
16 Invalid extra info

The following example adds error handling to the previous example of loading a PCX file:

| format image |
format := CgPCXFileFormat new.
image := format
    loadFromFile: 'my-image.pcx'.
format hasErrorOccurred
    ifTrue: [self error: format currentErrorString]
    ifFalse: [^image]


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]