While using the containers you might get an exception raised not only by the Eiffel Kernel but the container classes also. These exceptions are as follows:
item/key duplication: if a list or table was created with the argument 'is_unique' being equal to True then you are not allowed to put any duplicate copies of the items or keys already being stored in the container | |
container is full: if procedure 'allocate_manually' was used and allocating new slots for adding new entries is not done. If 'count' = 'capacity' you cannot put any new entries in then... | |
container is empty: for example, it is rather difficult to remove something from an empty container... | |
container is protected: it is not possible to put, remove, merge, etc (change the content of a container) if it is currently traversed at least one cursor... | |
possible loss of data: when using 'allocate_manually' it is not possible to allocate the total amount of slots in a container less than the number of entries already stored in it... | |
item/key is not found: you cannot remove a non-existing entry... | |
cursor is out of range: it is not possible to traverse a container beyond its borders | |
unexpected: you must not get it... |
The exceptions above can be raised not only in a debugging session (they are not programmed being based only on assertions).