Size: a a a

2021 January 19

DS

David Shiko in SPb Python
Кирилл П
exception на уровне сериализации валидациии и тд
В fastapi это все автоматически. И для него нет разницы между raise и return (по моему опыту).
источник

КП

Кирилл П in SPb Python
скорее всего есть, ты можешь вернуть респонс с кодом 503 например, а фронт то не знает, что на этом этапе надо уже остановить выполнение какого-то блока кода. в итоге продолжет работать с неправильным респонсом и в итоге получаешь internal server error
источник

DS

David Shiko in SPb Python
Кирилл П
скорее всего есть, ты можешь вернуть респонс с кодом 503 например, а фронт то не знает, что на этом этапе надо уже остановить выполнение какого-то блока кода. в итоге продолжет работать с неправильным респонсом и в итоге получаешь internal server error
У меня фронт ничего не выполняет, он только отображает данные :Hmm: emoji.
И код 503 я тоже возвращаю, вместе с объектом ошибки.
Я просто не понимаю этот момент в питоне, зачем реагировать на ошибки (через глобальное исключение Exception), которые пользователь сам вызвал (чисто логическки). Я понимаю, что интерпретатор может не знать создателя ошибки, и еще куча нюансов, но все же.
источник

КП

Кирилл П in SPb Python
та понятно, но в будущем ты ж для кого-то апиху писать будешь
источник

КП

Кирилл П in SPb Python
короче raise - остановить отправку запроса. try / catch - словить ошибку
источник

КП

Кирилл П in SPb Python
чувакееее, надо имплементировать контракты-фьючерсы на питоне. код должен просто показывать принцып их работы, если у кого-то есть статьи которые могут мне помочь или репы на гх, киньте пжшка!!
источник

КП

Кирилл П in SPb Python
пока что - это все до чего я додумался
источник

p

pragus in SPb Python
https://uneex.org/LecturesCMC

Думаю, полезно многим будет
источник

SK

Sergio Keler in SPb Python
David Shiko
Всем привет! Давно интересует вопрос как правильно ловить и возвращать ошибки. Я пишу апишку и бывают "легитимные" ошибки вроде "пользователь не найден" или "нужна авторизация".
Я знаю 2 варианта:
1. Оберрнуть все в try / except Exception as e (для неожиданных ошибок) и все легитимные ошибки возвращать через return
2. Райзить исключения фреймворка и их же ловить (что бы они НЕ попадали в "неожиданные ошибки и не логировались".

Пример вар. 1:
try:
   if not user:
       return framework_error_obj(text='user not found error')
except Exception as e:
   # log error
   raise framework_error_obj(text='status code 503, service unavailable')

Пример вар. 2:
try:
   if not user:
       raise framework_error_obj(text='user not found error')
except framework_error_obj(error='user not found error'):
   pass
except Exception as e:
   # log error
   raise Exception('status code 503, service unavailable')
От логики программы же зависит.
Смотри, вариант 1:
Код выше должен как-то проанализировать, что вернулось из твоей процедуры типа if функция() is None
Что есть проблемы.
Питонский же подход такой, что функция всегда возвращает ожидаемое значение, а если что-то идёт не так, бросает исключение.
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Как не дублировать time.sleep(60) ?

except:
except:
finally:

?
источник

КП

Кирилл П in SPb Python
Написать функцию, в которую будешь передавать сообщение ошибки и че тебе там ещё надо будет
источник

SK

Sergio Keler in SPb Python
🚲 Oleh Kopyl UI/UX designer
Как не дублировать time.sleep(60) ?

except:
except:
finally:

?
функция log_end_sleep(секунд, текст) решит
источник

A

Artem in SPb Python
Друзья питонисты
источник

🚲U

🚲 Oleh Kopyl UI/UX d... in SPb Python
Sergio Keler
функция log_end_sleep(секунд, текст) решит
Тоже вот подумал
источник

DS

David Shiko in SPb Python
Sergio Keler
От логики программы же зависит.
Смотри, вариант 1:
Код выше должен как-то проанализировать, что вернулось из твоей процедуры типа if функция() is None
Что есть проблемы.
Питонский же подход такой, что функция всегда возвращает ожидаемое значение, а если что-то идёт не так, бросает исключение.
Тогда это 2ой вариант, и уже выходит дисскуссия, т.к. у вас разногласие с другим советчиком
источник

IK

Igor Kozirev in SPb Python
David Shiko
В fastapi это все автоматически. И для него нет разницы между raise и return (по моему опыту).
я бы всё-таки доку поизучал получше. может подойдут fastapi.exception_handlers. https://fastapi.tiangolo.com/tutorial/handling-errors/
источник

АС

Анечка Смирнова... in SPb Python
/chats@spb_python_bot
источник

s

spb_python_bot in SPb Python
Анечка Смирнова
/chats@spb_python_bot
источник

АС

Анечка Смирнова... in SPb Python
/chats@spb_python_bot
источник

s

spb_python_bot in SPb Python
Анечка Смирнова
/chats@spb_python_bot
источник