All exceptions thrown by Libycus classes are of the class IbycusException and its subclasses IbycusFileException, IbycusNoId and IbycusParseException. IbycusException inherits from std::runtime_error and provides two public variables:
- int offset: contains the offset of the file pointer when the error occured (if applicable).
- ibystring_t type: contains the type of error that has been thrown (currently "general" for IbycusException, "file" for IbycusFileException, "no id" for IbycusNoId, and "parse" for IbycusParseException. This is provided so that subclasses of IbycusException can be caught as or upcast to IbycusExceptions without losing any indication of their original class or requiring any run-time type information.