Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 8, 2013 21:38:45

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 199
Репутация: +  16  -
Профиль   Отправить e-mail  

Отлов ошибок

Посоветуйте, как в консоли лучше всего ошибки отлавливать ?
Есть к примеру код, который при запуске просто ругается в консоли “TypeError: descriptor ‘strftime’ requires a ‘datetime.date’ object but received a ‘str’” .
Как понять в какой строке и в каком файле ? Пока что приходится по ходу кода расставлять различные брекпойнты, что бы определить проблемное место.

Запихивать все функции в try: except: ? Вроде решение не дешевое для процессора

Какие решения оптимальны ?

Офлайн

#2 Окт. 8, 2013 21:45:45

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Отлов ошибок

VadimK
Как понять в какой строке и в каком файле ?
Вообще-то Python сам пишет, в каком файле, в какой строке, какого типа исключение :)



Офлайн

#3 Окт. 8, 2013 21:47:03

Euler
Зарегистрирован: 2013-07-30
Сообщения: 43
Репутация: +  1  -
Профиль   Отправить e-mail  

Отлов ошибок

В python 3 показывается весь стек вызовов.

Офлайн

#4 Окт. 8, 2013 21:57:19

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 199
Репутация: +  16  -
Профиль   Отправить e-mail  

Отлов ошибок

Уточню чуть. Python 2.7.5 . И к примеру вот такая ошибка как в первом сообщении, своих хвостов не показывает, только текст ошибки.
В тоже время если сделать какую нибудь ошибку синтаксиса - то да, будут все данные об ошибке.

Офлайн

#5 Окт. 8, 2013 22:00:46

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Отлов ошибок

Могу предположить что Вы где-то уже перехватываете исключение и делаете print excpetion. Естественно стек вызовов при этом не отображается.



Офлайн

#6 Окт. 9, 2013 09:38:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Отлов ошибок

Или что-то делает это за Вас. Например в Джанге при запуске команд менеджмента информация об ошибке тоже не блещет информативностью, если не запускать с ключом –traceback.



Офлайн

#7 Окт. 9, 2013 14:28:39

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 199
Репутация: +  16  -
Профиль   Отправить e-mail  

Отлов ошибок

Спасибо, действительно оно. Делаю крон на django , и не ожидал, что в консоли не будет информации об ошибке. На страницах то она есть полная.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version