HTSQL Exceptions

HTSQL exceptions currently used in the trunk (to be revised)

Exception HTTP error Usage
NotImplemented(detail, mark) 501 HTSQL implementation is incomplete
SyntaxError(detail, mark) 400 scanner or parser error
InvalidReference(detail, mark) 400 namespace does not support the operation (lookup, enumerate, etc)
InvalidArgument(detail, mark) 400 invalid function arguments or context, type mismatch
CommandError(detail, mark) 400 command or formatter problem
UnknownClass(kind, id, mark) 403 lookup failure in NamedClassContainer.lookup
MultipleClasses(kind, id, choices, mark) 403 multiple matching names in NamedClassContainer.lookup
UnknownObject(kind, parent, id, mark) 403 lookup failure in NamedObjectContainer.lookup
MultipleObjects(kind, parent, choices, id, mark) 403 multiple matching names in NamedObjectContainer.lookup
configurers.CatalogError(c, c_mark, p, p_mark) -- YAML loader error (in CatalogLoader.construct_field)

Possible problems that could raise an exception

parsers.py: decoding UTF-8 characters, scanner error, parser error, duplicate keyword argument.

identifiers.py: lookup failure for a class or an object: either no matching name or multiple matching names

binders.py: unexpected wildcard, not a user, not a subrole, invalid multi-segment join, expect singular link, mismatched locator

namespaces.py: namespace does not support: binding identifier, enumerating attributes, encoding, entitling, aspect permission error

functions.py: unexpected keyword or positional argument, multiple values for a keyword argument, missing arguments, type mismatch, invalid context

generators.py: no segments, expect singular element

commands.py: unexpected argument, missing argument

formatters.py: unexpected argument, missing argument, incompatible command

configurers.py: YAML loader error

HTTP error codes

Taken from http://tools.ietf.org/html/rfc2616#section-10

Status code Status line
1xx Informational
100 Continue
101 Switching Protocols
2xx Successful
200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
3xx Redirection
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy
307 Temporary Redirect
4xx Client Error
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Time-out
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Large
415 Unsupported Media Type
416 Requested range not satisfiable
417 Expectation Failed
5xx Server Error
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Time-out
505 HTTP Version not supported