diff options
Diffstat (limited to 'Doc/lib/libcodecs.tex')
-rw-r--r-- | Doc/lib/libcodecs.tex | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/Doc/lib/libcodecs.tex b/Doc/lib/libcodecs.tex index 355ac5d..caaaaf4 100644 --- a/Doc/lib/libcodecs.tex +++ b/Doc/lib/libcodecs.tex @@ -103,11 +103,22 @@ Raises a \exception{LookupError} in case the encoding cannot be found. Register the error handling function \var{error_handler} under the name \var{name}. \var{error_handler} will be called during encoding and decoding in case of an error, when \var{name} is specified as the -errors parameter. \var{error_handler} will be called with an -\exception{UnicodeEncodeError}, \exception{UnicodeDecodeError} or -\exception{UnicodeTranslateError} instance and must return a tuple -with a replacement for the unencodable/undecodable part of the input -and a position where encoding/decoding should continue. +errors parameter. + +For encoding \var{error_handler} will be called with a +\exception{UnicodeEncodeError} instance, which contains information about +the location of the error. The error handler must either raise this or +a different exception or return a tuple with a replacement for the +unencodable part of the input and a position where encoding should +continue. The encoder will encode the replacement and continue encoding +the original input at the specified position. Negative position values +will be treated as being relative to the end of the input string. If the +resulting position is out of bound an IndexError will be raised. + +Decoding and translating works similar, except \exception{UnicodeDecodeError} +or \exception{UnicodeTranslateError} will be passed to the handler and +that the replacement from the error handler will be put into the output +directly. \end{funcdesc} \begin{funcdesc}{lookup_error}{name} |