Как отловить ошибку, не связанную с ASCII? - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь поймать эту ошибку SyntaxError: Non-ASCII character '\xc3', используя этот код:

try:
    address = 'ÁR11E'
except:
    print 'hello'

Я никогда не смогу напечатать "привет".Ошибка обрабатывается как необработанная и останавливает процесс.Как я могу поймать и обработать этот тип ошибки?

Мне нужно только поймать ошибку, не решая ее пока.

Ответы [ 3 ]

0 голосов
/ 02 июня 2018

По умолчанию исходный код Python 2 должен содержать только символы ASCII, поэтому это синтаксическая ошибка.Вы не можете его перехватить, потому что он делает весь файл недействительным.

Вы можете сделать две вещи:

# coding: utf-8

  • или кодировать не-ascii символ

address = '\xC3\x81R11E' # this would be utf-8

address = '\xC3\x81R11E'.decode('utf-8') # this would be unicode

или

address = u'\N{LATIN CAPITAL LETTER A WITH ACUTE}R11E'

или

address = u'\u0381R11E'

0 голосов
/ 02 июня 2018

1-я строка (linux)

! Usr / bin / env python

2-я строка (linux)

кодировка: utf-8

0 голосов
/ 02 июня 2018

Вы не можете отловить синтаксическую ошибку в Python (кроме случаев, когда она возникла из eval, что не соответствует вашему случаю)

...