LINUX.ORG.RU

Исключение работает не так, как мне надо

 ,


0

3

Простите уж за тупняк, но исключения я юзаю первый раз вообще. Так уже сложилось, что во всех языках, которые я раньше юзал их не было.

Вот такой код:

try:
    date = time.strptime(forceString(value), "%d.%m.%Y")
    db_date = time.strftime("%Y-%m-%d", date)
except ValueError:
    print 'error'
    return False

error не выводится ни когда, чтобы не записать вместо даты. Почему?

Deleted

Я сейчас попробовал — у меня выводится. если чушь вместо даты записать. Но есть одно отличие — у меня просто «value» вместо «forceString(value)», потому что, я так понимаю, forceString — это твоя собственная функция, от которой у нас кода нет.

Итак, что такое forceString?

proud_anon ★★★★★ ()
Ответ на: комментарий от proud_anon

Я сейчас попробовал — у меня выводится. если чушь вместо даты записать. Но есть одно отличие — у меня просто «value» вместо «forceString(value)», потому что, я так понимаю, forceString — это твоя собственная функция, от которой у нас кода нет.

Вокруг моего кода всегда царит магия.

forceString приводит QValue к обычной строке методом toString.

Deleted ()
Ответ на: комментарий от Deleted
try:
    test = forceString(value)
    date = time.strptime(test, "%d.%m.%Y")
    print type(test)," | ", test
    db_date = time.strftime("%Y-%m-%d", date)
except ValueError:
    print 'error'
    return False

Что выводит если так?

dimderbin ()
Ответ на: комментарий от dimderbin

Лол, не выводит вообще ни чего. Как будто код даже не вызывается, но такого быть не может.

Deleted ()
Ответ на: комментарий от Deleted

ой, я сам тут подтупил...

Вот так:


test = forceString(value)   
print type(test)," | ", test
try:
    date = time.strptime(test, "%d.%m.%Y")
    db_date = time.strftime("%Y-%m-%d", date)
except ValueError:
    print 'error'
    return False
dimderbin ()

а можт там не ValueError? если проверьять просто на Exception - что будет?

arkhnchul ★★ ()

except ValueError

Там точно ValueError выбрасывается по документации?

Virtuos86 ★★★★★ ()
Ответ на: комментарий от Virtuos86

Точно. Ну, в книжке так написано. Попробую все вышеперечисленное в понедельник.

Deleted ()
Ответ на: комментарий от Deleted
except BaseException as e:
    print type(e)
    print e.message

    print "I am an idiot, kill me please"
    return false
aedeph_ ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.