Python Glossary English

все Python 3codecsфункция

codecs.strict_errors()

обработчики ошибок

Обработчик ошибок 'strict' — умолчание для encode и decode: просто бросает полученное исключение UnicodeEncodeError или UnicodeDecodeError.

Синтаксис

codecs.strict_errors(exception)

Строгий режим — правильное умолчание: лучше упасть, чем молча испортить данные. Ошибка на чтении файла почти всегда значит неверную кодировку (cp1251 вместо utf-8), а не повод ставить errors='ignore'. Напрямую функцию зовут в своём обработчике, чтобы для «не моего» случая вести себя как strict.

Примеры

import codecs
def only_e(err):
    if err.object[err.start:err.end] == 'é':
        return ('e', err.end)
    return codecs.strict_errors(err)
codecs.register_error('only_e', only_e)
print('café'.encode('ascii', 'only_e'))  # → b'cafe'
try:
    'naïve'.encode('ascii', 'only_e')
except UnicodeEncodeError as e:
    print(e.reason)  # → ordinal not in range(128)

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности