Форум сайта python.su
0
Доброго времени суток, уважаемые!
Подскажите пожалуйста, как можно обработать конкретную ошибку, к примеру, есть ошибка:
sqlite3.OperationalError: table users already exists
sqlite3.OperationalError: database is locked
Офлайн
14
Можно получить экземпляр исключения и проверять какая конкретная ошибка возникла.
Офлайн
103
не знаю правильно ли, но другого способа я не знаю
except sqlite3.OperationalError as e: if e.message.startswith('table') and e.message.endswith('already exists'): print ":(" elif e.message == 'database is locked': print "LOCKED!!!"
Офлайн
857
>>> try: ... raise ValueError('abc') ... except ValueError as e: ... print(type(e), e, str(e) == 'abc', str(e) == 'def') ... print(hasattr(e, 'message')) ... <class 'ValueError'> abc True False False >>>
Офлайн
0
Всем большое спасибо за помощь!
Офлайн